什么可能导致pushViewController非常慢? (新视图显示需要30 +秒)
基本上,我做的是这样的事情:
SecondViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"correctID"];
vc.something = something;
[self.navigationController pushViewController:vc animated:YES];
CLS_LOG(@"Pushed Controller...");
并且我在第二个视图控制器内的viewdidload开头记录。 我没有继承其他方法。
推送控制器......和viewdidload的下一个日志之间存在很大的延迟。
你会如何调试?
我已经尝试过使用TimeProfiler,但显然它没有显示任何内容。
答案 0 :(得分:19)
之前有过类似的问题,请尝试以下
dispatch_async(dispatch_get_main_queue(), ^{
// your navigation controller action goes here
});
答案 1 :(得分:4)
DispatchQueue.main.async {
self.navigationController?.pushViewController(vc, animated: true)
}
答案 2 :(得分:0)
设置背景颜色,例如vc.view.backgroundColor = .white
为我解决了这个问题。