iOS8 performSegueWithIdentifier 运行太慢

Posted

技术标签:

【中文标题】iOS8 performSegueWithIdentifier 运行太慢【英文标题】:iOS8 performSegueWithIdentifier run too slow 【发布时间】:2015-01-21 15:23:35 【问题描述】:

这只发生在 ios8 中。

如果我在按钮单击处理程序中运行“performSegueWithIdentifier”。例如。

- (IBAction)buttonPressed:(id)sender 
    [self performSegueWithIdentifier:@"SegueFromMenuToList" sender:self];

然后它就可以正常工作了。

但是如果我显示一个警报视图。然后在alerview委托处理程序中,调用“performSegueWithIdentifier”,加载需要4秒!

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    [self performSegueWithIdentifier:@"SegueFromMenuToList" sender:self];

这仅在我第一次调用“performSegueWithIdentifier”时发生,并且仅在 iOS 8 下发生。

任何帮助将不胜感激。谢谢!

更新

尝试在 UI 线程中运行并不能解决问题。

    如果只是第一次滞后,有什么办法可以预加载吗? 为什么这只发生在 iOS 8 上?

【问题讨论】:

【参考方案1】:

UIAlertView 在 iOS8 中已弃用。开始使用 UIAlertController。 它在 iOS8 中运行缓慢,因为它必须执行 2 个任务。一种是去掉alert view,另一种是显示segue。有时可能会崩溃(我遇到过)

【讨论】:

感谢您的回答。我尝试了 UIAlertController,但它仍然滞后约 3-4 秒。奇怪的是,这只发生在 iOS 8 中,而在 iOS7 中,它几乎立即加载。

以上是关于iOS8 performSegueWithIdentifier 运行太慢的主要内容,如果未能解决你的问题,请参考以下文章

iOS8开发之iOS8的UIAlertController

iOS8 MGSplitViewController 替代品

未调用 iOS8 接口旋转方法

iOS8 - 请求远程推送通知

IOS8:AVFoundation 相机冻结

推送通知未在 IOS8.1 中提供,但在少于 IOS8.1 时工作正常