У меня есть контроллер панели вкладок, внутри одной из вкладок У меня есть 3 контроллера контейнера. Только один может быть представлен, другие удалены в данный момент. Представления для этих контроллеров определены в xib.Неожиданная задержка после нажатия контроллера просмотра
В одном из этих контейнеров у меня есть вид на стол.
Когда я нажимаю на ячейку, я должен нажать контроллер просмотра.
В первый раз, когда я запускаю приложение, у меня есть задержка при нажатии контроллера вида. После того, как я вернусь к просмотру стола и снова нажимаю, нет задержки.
Я печатаю время, когда в didSelectRowAtIndexPath
и в viewDidLoad
нового контроллера, и задержка составляет от 2 до 4 секунд.
Это код я использую для толкания вид контроллера:
EventDetailsViewController *eventDetailsVc = [[EventDetailsViewController alloc]init];
Events *event = [self.events objectAtIndex:indexPath.row];
eventDetailsVc.curentEvent = event;
NSDateFormatter *f2 = [[NSDateFormatter alloc] init];
[f2 setDateFormat:@"dd MMMM, hh:mm:ss.SSS a"];
NSLog([f2 stringFromDate:[NSDate date]]);
dispatch_async(dispatch_get_main_queue(), ^{
[self.navigationController pushViewController:eventDetailsVc animated:YES];
});
Обычно я не использую dispatch_async
при нажатии вид контроллера, но это был один из предложенных решений, которые я нашел. Я также пробовал self.parentViewController.navigationController
, те же результаты.
Я не знаю, что делать с этой задержкой, кто-то может мне помочь.
Спасибо.
Возможно, ваш главный поток заблокирован, так или иначе, не так ли? – kirander
Вы выполняете любую задачу в методах init() или viewdidload(), которые блокируют ваш основной ui? –
Спасибо за предложения. Я загружаю данные в viewDidAppear. Вы можете увидеть пример в комментарии первого ответа. – Paki