gpt4 book ai didi

objective-c - 如果 View Controller 转换完成得太快,应用程序会崩溃

转载 作者:行者123 更新时间:2023-12-05 05:27:34 26 4
gpt4 key购买 nike

我正在使用 View Controller 包含在 6 个 View Controller 之间进行转换。使用分段控件控制转换。除非在前一个过渡动画完成之前按下分段控件上的按钮,否则这一切都可以正常工作。在这种情况下,应用程序崩溃并显示

'调用 -[UIViewController transitionFromViewController:toViewController:duration:options:animations:completion:] 时 subview Controller 和必须有一个共同的父 View Controller :]'

代码是:

[self transitionFromViewController:currentVC
toViewController:newVC
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:nil
completion:^(BOOL finished) {
[currentVC removeFromParentViewController];
[newVC didMoveToParentViewController:self];
currentVC = newVC;
}];

我应该在动画完成之前禁用分段控件吗?还是它们是避免此问题的更好方法?

最佳答案

您可以通过调用禁用和重新启用应用程序交互

[[UIApplication sharedApplication] beginIgnoringInteractionEvents];
[[UIApplication sharedApplication] endIgnoringInteractionEvents];

分别在动画开始和结束时。然后,应用程序将忽略所有交互(触摸事件),直到动画完成,因此该片段在安全(动画完成)之前永远不会接收事件。

我认为这种方法也用在一些内置的容器 Controller 上。但是要注意动画持续时间。如果动画需要很长时间,看起来应用程序响应不佳,这会损害用户体验

关于objective-c - 如果 View Controller 转换完成得太快,应用程序会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18830837/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com