在呈现新Controller时取消所有模态转换

时间:2012-09-11 05:14:22

标签: iphone ios crash modal-dialog transition

我正在寻找一种方法来取消所有正在进行的模态转换。

我需要在应用生命周期的任何时候推送一个新的视图控制器,因此我不能依赖 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崩溃而终止应用程序。”

我唯一的选择是在没有动画的情况下推动新控制器,或找到取消所有待处理模态转换的方法。

任何帮助?

1 个答案:

答案 0 :(得分:1)

我使用了你建议的方法:

  

“推动没有动画的新控制器”

推送或呈现允许您不使用动画,所以我认为这已经足够了。至于@Spynet建议:

  

更好你只是addSubView并做你真正不想要的动画   模态或推动意味着......

您不应将UIViewController's UIViews与其他UIViewController('s)混合使用。例如,旋转逻辑丢失了。此外,UIView的逻辑和行为也会丢失。如果需要,您可以轻松创建UIViewController容器并使用它。 WWDC视频中有great video about it