我以模态形式提供了一个带有ViewController的NavigationController。
在ViewController中,我可以看到self.navigationController.isBeingPresented
为true。
但是,如果我现在将新的ViewController推送到模态显示的NavigationController上,然后弹出回到原始的ViewController,则检查isBeingPresented
的同一调用将返回false。
文档稀疏,但是除了可能是错误之外,我无法真正解释这种不一致之处?
最佳答案
这是预期的行为。
仅当给定的isBeingPresented
当前为且显示为(docs)时,viewController
才为true:
而不是在已经显示的时候。在演示过程中将其设置为true -从导航到该 View Controller 的开始到 View Controller 完全呈现的那一刻,以及所有生命周期事件发生的时间(演示动画完成,调用了viewWillAppear
/viewDidAppear
回调等) )。在那一刻之后, View Controller 被呈现为,而不是被呈现为,因此isBeingPresented
将被而不是设置为true。
首先显示了self.navigationController
(通过模式演示),从中弹出 View Controller 不会触发演示。呈现UINavigationController
后,将在推送和弹出 View Controller 的整个过程中呈现它。您将必须先对dismiss
进行navigationController
编码,然后再次将其呈现出来,以使isBeingPresented
成为true
-因为仅在模态呈现期间才将其呈现。
关于ios - isBeingPresented值不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48401435/