在动画视图控制器过渡期间向UINavigationController推送视图控制器

6
我正在开发一个应用程序,在接收到远程或本地通知时,不同的视图控制器会被推入导航堆栈。
问题出现在当应用程序处于活动状态,并且在动画视图控制器转换之间收到通知时。这会导致导航控制器出现问题,我会收到以下错误消息:
“nested pop animation can result in corrupted navigation bar Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.”
有没有一种方法可以检查视图控制器是否在改变,如果是,则等待过渡完成?或者,还有其他解决此问题的方法吗?
像往常一样,感谢任何帮助!

1
你找到解决方案了吗?我有同样的问题——当推送通知到达时,我需要呈现一个视图控制器。我可以定位顶部/可见的视图控制器,并在其之上呈现,但如果该视图控制器正处于动画过渡状态,应用程序将崩溃并显示“正在尝试从UINavigationController:0x1d921c30开始模态过渡到UINavigationController:0x1d92c5d0,而转换已经在进行中。”由于UIViewController属性如isBeingDismissed不会返回值,除非在viewWillAppear内使用,因此它们无法发挥作用。 - Mark Krenek
1个回答

4

有一些获取viewController状态的方法,例如:(BOOL)isBeingPresented(BOOL)isViewLoaded。建议查看苹果文档中关于视图控制器的部分。

此外,UINavigationController也有一些相关方法:

- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接