2015-07-30 3 views
2

Когда я нажимаю на свой подробный диспетчер представлений после нажатия ячейки коллекции, требуется время для загрузки контроллера detailview. MainViewController.mЗагрузка при нажатии на другой viewController

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ 

    DetailViewController *objDetailViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"DetailViewController"]; 
    objDetailViewController.objProduct = [arrList objectAtIndex:indexPath.row]; 
    [self.navigationController pushViewController:objDetailViewController animated:YES]; 
} 

DetailViewConteroller.m

- (void)viewDidLoad { 

    [super viewDidLoad]; 
    [self setInitialValues]; 
    [self productDetailAPI];//WS CALL 

} 
+0

операции или функции вызов viewDidLoad в DetailViewConteroller.m, помещенный в nsoperation или @selector –

ответ

3

Является ли вызов API работает на главном потоке? Вы должны сделать сетевые вызовы в фоновом потоке, чтобы не блокировать поток пользовательского интерфейса.

1

если «productDetilAPI» является функцией веб-запрос, он остановит интерфейс, как указан в ответе выше, так что вы должны сделать, это

[self performSelectorInBackground:@selector(productDetailAPI) 
          withObject:nil]; 

Надеется, что это поможет