当视图控制器被置于视图堆栈的顶部时,您可以使用以下方法让视图控制器运行更新代码:
viewWillAppear
方法:当视图控制器被添加到视图堆栈顶部时,viewWillAppear
方法会被自动调用。您可以在此方法中编写更新代码,以便在视图控制器显示时运行。override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// 在这里编写更新代码
}
viewDidAppear
方法:与viewWillAppear
方法类似,viewDidAppear
方法也会在视图控制器被添加到视图堆栈顶部时自动调用。您可以在此方法中编写更新代码,以便在视图控制器显示后立即运行。override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// 在这里编写更新代码
}
UINavigationControllerDelegate
协议:如果您的视图控制器是由UINavigationController
管理的,您可以使用UINavigationControllerDelegate
协议来监听视图控制器何时被添加到视图堆栈顶部。首先,将您的视图控制器设置为UINavigationControllerDelegate
的代理,并实现navigationController(_:didShow:animated:)
方法。class MyViewController: UIViewController, UINavigationControllerDelegate {
// ...
override func viewDidLoad() {
super.viewDidLoad()
navigationController?.delegate = self
}
func navigationController(_ navigationController: UINavigationController, didShow viewController: UIViewController, animated: Bool) {
if viewController === self {
// 在这里编写更新代码
}
}
}
通过以上方法,您可以在视图控制器被添加到视图堆栈顶部时运行更新代码。
领取专属 10元无门槛券
手把手带您无忧上云