过渡到上一个视图时显示模态

时间:2018-05-22 20:17:17

标签: swift uinavigationcontroller modal-dialog

当我离开特定的视图控制器时,我想让它在导航堆栈中的上一个视图上显示模态视图。目前我正在使用此代码:

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;这样做的方式?

2 个答案:

答案 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)完美无缺,没有任何警告。回想起来,我可能应该首先测试一下,但我认为它不会起作用,因为视图正在消失。

此外, }完全不起作用,而我原来的解决方案 没有任何警告(但我不希望它是动画)。不确定这是异步过程如何运作,还是有更多的东西。