当我离开特定的视图控制器时,我想让它在导航堆栈中的上一个视图上显示模态视图。目前我正在使用此代码:
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
self.navigationController?.viewControllers.last?.present(myModalView, animated: false, completion: nil)
}
此似乎可以正常工作,但每次离开视图时,我都会在控制台中收到警告:
Presenting view controllers on detached view controllers is discouraged <Project.MyViewController: 0x7fe09281a400>.
所以我担心可能还有一个问题我还没有遇到过。有没有正确的&#34;这样做的方式?
答案 0 :(得分:0)
您将在当前视图控制器上呈现模式,而不是在先前的视图控制器上。当你这样做
self.navigationController?.viewControllers.last?.present(myModalView, animated: false, completion: nil)
<{1>}协议中的与
相同viewWillDisappear
相反,试试这个:
self.present(myModalView, animated: false, completion: nil)
答案 1 :(得分:0)
事实证明,self.present(myModalView, animated: false, completion: nil)
完美无缺,没有任何警告。回想起来,我可能应该首先测试一下,但我认为它不会起作用,因为视图正在消失。
此外, 1>}完全不起作用,而我原来的解决方案 没有任何警告(但我不希望它是动画)。不确定这是异步过程如何运作,还是有更多的东西。