就我而言,我正在使用两个视图控制器VC1
和VC2
。此处,VC1按钮单击Present Modally
到Over Full Screen
和Cross Dissolve
演示文稿,过渡到演示文稿VC2。现在,从VC2撤消,然后我没有接到VC1 viewWillAppear()
的电话。
我没有为Present模型使用代码库。我正在使用Storyboard Segue
。
为什么会发生以及如何解决?
答案 0 :(得分:0)
从Docs,
注意
如果视图控制器由内部的视图控制器提供 弹出框,不会在呈现视图控制器上调用此方法 提出的控制器被解雇后。
因此,根据文档,当ViewController模态提供另一个ViewController时,将不会调用此方法。要解决此问题,您需要使用
func dismiss(animated flag: Bool,
completion: (() -> Void)? = nil)
并将部分viewWillLoad逻辑移至(或重复)完成处理程序。
答案 1 :(得分:0)
将演示文稿更改为angular v.7.3
,或者如果您要坚持使用Full screen
,则使vc2成为vc1的委托,并在关闭时调用委托方法。
要了解该概念,您可以参考:https://medium.com/livefront/why-isnt-viewwillappear-getting-called-d02417b00396