让viewDidAppear/viewWillAppear 在push/pop页面加载前始终调用
时间: 2023-08-14 18:04:09 浏览: 86
在iOS中,`viewDidAppear`和`viewWillAppear`方法是UIViewController的生命周期方法,它们在ViewController的视图生命周期中扮演着非常重要的角色。当你push或pop一个ViewController时,这些方法并不总是被调用,这可能会导致一些问题。为了确保这些方法始终被调用,你可以考虑使用以下两个方法:
1. 在ViewController中手动调用这些方法。
你可以在ViewController的`viewDidAppear`和`viewWillAppear`方法中手动调用它们的父类方法。这将确保这些方法在push或pop页面之前始终被调用。
```swift
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// your code here
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// your code here
}
```
2. 使用UIViewController的子类
你可以创建一个UIViewController的子类,然后在这个子类中重写`viewDidAppear`和`viewWillAppear`方法。然后,你可以使用这个子类来代替你的ViewController。
```swift
class MyViewController: UIViewController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// your code here
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
// your code here
}
}
```
使用这个子类来代替你的ViewController,这样你就可以确保这些方法始终被调用。
阅读全文