Каков правильный способ запускать методы в блоке завершения (если это даже рекомендуется)? Прямо сейчас у меня есть IBAction, который вызывает метод, который загружает информацию с блоком завершения, означающим, была ли информация получена успешно или нет. Если бы это было так, я хочу нажать контроллер представления, который отобразит эту информацию, но в данный момент ничего не происходит. Я предполагаю, что это что-то делать с основным потоком, НОД и т.д ...Нажатие контроллера просмотра внутри блока не работает
__weak YTTMSetupViewController *weakSelf = self;
[mc downloadJson:^(BOOL success) {
if(success){
NSLog(@"sucess. metric count - %i",(int)mc.collection.count);
//info was downloaded. Push new view controller with info
YTTMMetricTableViewController *mtvc = [self.storyboard instantiateViewControllerWithIdentifier:@"YTTMMetricTableViewController"];
mtvc.group = (WAGroup*)[[WAMetricCollection sharedInstance].collection lastObject];
mtvc.hidesBottomBarWhenPushed = YES;
[weakSelf.navigationController pushViewController:mtvc animated:YES];
}
else{
NSLog(@"failure");
//display failure UI
}
NSLog(@"end of downloading");
[HUD dismissAfterDelay:0.5f animated:YES];
}];
Вы можете попробовать позвонить pushViewController из dispatch_asynch с задержкой 0,0 сек. Обычно это работает. – Dzmitry