我正在寻找一种方法来取消所有正在进行的模态转换。
我需要在应用生命周期的任何时候推送一个新的视图控制器,因此我不能依赖 viewDidAppear 委托来开始这个新视图的演示。
当一个模态转换已经发生并且我尝试推动(使用动画)一个新的控制器时,我得到了“因未捕获的异常NSInternalInconsistencyException', reason: 'Attempting to begin a modal transition from to while a transition is already in progress. Wait for viewDidAppear/viewDidDisappear to know the current transition has completed
崩溃而终止应用程序。”
我唯一的选择是在没有动画的情况下推动新控制器,或找到取消所有待处理模态转换的方法。
任何帮助?
答案 0 :(得分:1)
我使用了你建议的方法:
“推动没有动画的新控制器”
推送或呈现允许您不使用动画,所以我认为这已经足够了。至于@Spynet建议:
更好你只是addSubView并做你真正不想要的动画 模态或推动意味着......
您不应将UIViewController's
UIViews
与其他UIViewController('s)
混合使用。例如,旋转逻辑丢失了。此外,UIView
的逻辑和行为也会丢失。如果需要,您可以轻松创建UIViewController
容器并使用它。 WWDC视频中有great video about it。