您好我有一个ViewController在按钮上执行segue。
- (IBAction)moveToCoolViewButtonTapped {
[self performSegueWithIdentifier:@"toCoolView" sender:nil];
}
这很好,除了第一次执行时出现恼人的延迟,我想由于视图尚未初始化。我显然不希望过早地创建很多观点。 (还有其他几个segues来自同一个viewController)。所以,也许是一个长镜头:但我想知道是否有人有任何出色的技巧来避免最初的滞后?
答案 0 :(得分:2)
尝试替换此
[self performSegueWithIdentifier:@"toCoolView" sender:nil];
用这个
dispatch_async(dispatch_get_main_queue(),^{
[self performSegueWithIdentifier:@"toCoolView" sender:nil];
});
答案 1 :(得分:1)
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
toCoolView *yourViewController = (toCoolView *)[storyboard instantiateViewControllerWithIdentifier:@"toCoolView"];
[self.navigationController pushViewController:yourViewController animated:YES];
尝试那个伴侣
答案 2 :(得分:0)
嘿,我有同样的问题。来到你的帖子寻找解决方案。我想我终于找到了问题。
问题不在于你的performSegueWithIdentifier,而是在你的目标控制器中(“toCoolView”带你去的地方)。检查它的viewDidLoad并查看是否有任何可能需要额外时间加载的内容。在我的情况下,我正在分配和初始化UIImagepickerController,导致延迟,所以我从那里删除它并将其放在ViewDidAppear。
尝试在目标控制器的viewDidLoad中注释掉所有内容,看看它是否会加快后续控制。
希望有所帮助