Iphone 显示新控制器时取消所有模式转换

Iphone 显示新控制器时取消所有模式转换,iphone,ios,crash,modal-dialog,transition,Iphone,Ios,Crash,Modal Dialog,Transition,我正在寻找一种方法来取消所有正在进行的模式转换 在我的应用程序生命周期的任何时候,我都需要推送一个新的视图控制器,因此我不能依赖viewDidAppear委托来开始这个新视图的演示 当一个模式转换已经发生,并且我尝试推送(带有动画)一个新控制器时,我得到“由于未捕获异常而终止应用程序nsinternalinconsistenceexception',原因:'试图在转换已在进行时从开始模式转换到。等待ViewDidDisplay/ViewDidEnglish以了解当前转换已完成崩溃 我唯一的选择是

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

在我的应用程序生命周期的任何时候,我都需要推送一个新的视图控制器,因此我不能依赖viewDidAppear委托来开始这个新视图的演示

当一个模式转换已经发生,并且我尝试推送(带有动画)一个新控制器时,我得到“由于未捕获异常而终止应用程序
nsinternalinconsistenceexception',原因:'试图在转换已在进行时从开始模式转换到。等待ViewDidDisplay/ViewDidEnglish以了解当前转换已完成
崩溃

我唯一的选择是在没有动画的情况下推送新控制器,或者找到取消所有挂起的模式转换的方法


有什么帮助吗?

我使用了您建议的方法:

“在没有动画的情况下推送新控制器”

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

你最好只添加子视图,然后制作你真正不想要的动画 模态或推式表示


您不应在其他
UIViewController('s)
中混合使用
UIViewController的
UIViews
。例如,旋转的逻辑丢失了。此外,
ui视图
的逻辑和行为也会丢失。如果需要,可以轻松创建
UIViewController
容器并使用它。WWDC视频中存在一个问题。

实际上,在视图更改之间不进行模式转换是不可能的。我需要找到一种方法来取消正在进行的模式转换。有什么提示吗?我遇到了一个非常类似的情况——每当用户做某个动作时,都会显示一个“锁屏”,这可能会在任意时间发生。我认为没有任何方法可以避免这种情况——我找不到任何方法来检查正在进行的应用程序范围的转换,或者取消正在进行的任何转换,以避免发生这种异常。我认为唯一的解决方案是在现有导航堆栈之外单独显示新的视图控制器,例如为其创建一个新的
UIWindow
。您找到解决方案了吗?