【问题标题】:viewWillAppear not being called after popToRootViewController在 popToRootViewController 之后没有调用 viewWillAppear
【发布时间】:2021-06-17 06:49:38
【问题描述】:
这是流程:
VC1 ->(推)-> VC2 ->(推) -> VC3
单击VC3 中的按钮时,我正在调用下面的方法并且它可以正常工作 - 带我回到VC1:
self.navigationController?.popToRootViewController(animated: false)
但问题在于VC1 中的viewWillAppear() 方法没有被调用。
有什么办法可以调用吗?
【问题讨论】:
标签:
swift
uiviewcontroller
rootviewcontroller
viewcontroller-lifecyle
【解决方案1】:
我不太确定,但在加载控制器时会调用 viewWillAppear()。关闭其他控制器时它没有调用。所以,你需要尝试custom Delegate或Notification observer。
【解决方案2】:
你可以在这里解决问题:
if let root = navigationController?.viewControllers.last(where: { $0 is YourRootController }) {
navigationController?.popToViewController(root, animated: true)
}