pushViewController非常慢

Luc*_*cci 10 objective-c ios

什么可能导致pushViewController非常慢?(新视图显示需要30 +秒)

基本上,我正在做这样的事情:

SecondViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"correctID"];
vc.something = something;
[self.navigationController pushViewController:vc animated:YES];
CLS_LOG(@"Pushed Controller...");
Run Code Online (Sandbox Code Playgroud)

我正在第二个视图控制器内的viewdidload的开头记录.我不是其他方法的子类.

在推送控制器...和viewdidload的下一个日志之间有一个巨大的延迟.

你会如何调试这个?

我已经尝试过使用TimeProfiler,但显然它没有显示任何内容.

Din*_* Tw 19

之前有过类似的问题,请尝试以下方法

dispatch_async(dispatch_get_main_queue(), ^{
    // your navigation controller action goes here
});
Run Code Online (Sandbox Code Playgroud)


Sco*_*des 6

迪诺的回答救了我一命。他得到了我的支持。我只是为现代快速用户添加此功能。

     DispatchQueue.main.async {
          self.navigationController?.pushViewController(vc, animated: true)
     }
Run Code Online (Sandbox Code Playgroud)