iOS:多层模态呈现的导航控制器会降低VC演示速度吗?

时间:2014-12-10 04:44:15

标签: ios objective-c uitableview uinavigationcontroller modalviewcontroller

我有一个导航控制器说navA,它可以呈现(即模态)另一个导航控制器navB,而navB也可以呈现另一个导航控制器navC,我观察到当navB呈现navC时,随机可能有延迟,I尝试在navB提供navC之前以及完成块中记录:

// inside a VC which is on navB's stack:

NSLog(@"started");
[self.navigationController presentViewController:navC animated:YES completion:^{
    NSLog(@"completed");
}];

有没有人见过这种问题?或者还有其他问题我错过了吗?

更新

我在不同的VC生命周期方法中记录了一些日志:

  

2014-12-11 10:16:41.631 ####### [78210:7119850] DID INIT

     

2014-12-11 10:16:41.631 ####### [78210:7119850] DID FINISH INIT

     

2014-12-11 10:17:00.007 ####### [78210:7119850] DID LOAD

     

2014-12-11 10:17:00.010 ####### [78210:7119850]将出现

     

2014-12-11 10:17:00.517 ####### [78210:7119850] DID APPEAR

所以在viewDidLoad之后,调用viewWillAppear花了将近19秒,我猜它在加载/呈现视图之前正在做一些内部视图层次结构工作?

更新2:

这似乎是iOS 8+上的常见问题,快速解决方法是将presentVC ...代码放在主队列上的dispatch_async块中。

0 个答案:

没有答案