ios - Swift 关闭当前 ViewController 后呈现 ViewController 不调用 viewWillAppear()

标签 ios swift

就我而言,我使用两个 View Controller VC1VC2。此处,VC1 按钮单击模态演示全屏 演示,并使用交叉溶解 过渡到演示 VC2。现在,从 VC2 关闭,然后我没有接到 VC1 viewWillAppear() 的调用。

我没有使用当前模型的代码库。我正在使用Storyboard Segue

为什么会发生这种情况以及如何解决这个问题?

enter image description here

最佳答案

来自Docs ,

Note

If a view controller is presented by a view controller inside of a popover, this method is not invoked on the presenting view controller after the presented controller is dismissed.

因此,根据文档,当 ViewController 以模态方式呈现另一个 ViewController 时,将不会调用此方法。要解决此问题,您需要使用

func dismiss(animated flag: Bool, 
  completion: (() -> Void)? = nil)

并将一些 viewWillLoad 逻辑移动(或重复)到完成处理程序。

关于ios - Swift 关闭当前 ViewController 后呈现 ViewController 不调用 viewWillAppear(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57973003/

相关文章:

ios - 处理 TableView 内容

ios - iOS中的水滴动画

swift - 从 Observable 中只获取一个值

Swiftlint 下划线名称 swift

swift - 我的 UISearchBar 结果有什么问题?

ios - Interface Builder 中的原型(prototype) ≠ UITableView 标题单元格的运行时结果

ios - 将推送证书从 2(沙盒和生产)更改为 1 个证书(沙盒/生产)

ios - 如何让两个分段控件在同一个 ViewController 中工作? l IOS SWIFT 3

ios - Swift - UITextField 以编程方式无法输入文本

ios - 如何快速获取选定的单元格索引路径