4

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

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

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

有什么帮助吗?

4

1 回答 1

1

我使用了您建议的方法:

“推新控制器没有动画”

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

更好的是,你只需 addSubView 并做你的动画,你真的不想要模态或推动类似的手段......

你不应该混入UIViewController's UIViewsother(s) UIViewController('s)。例如,旋转的逻辑就丢失了。UIView也失去了逻辑和行为。如果需要,您可以轻松创建一个UIViewController容器并使用它。WWDC 视频中有一个很棒的视频。

于 2012-09-11T06:49:05.217 回答