我有一个 UIViewController_A。 我这个 View Controller 的 vidDidLoad 我有一个获取一些数据的 http 请求。
我继承了UIViewController_A,创建了UIViewController_B。 现在我可以绕过 [super viewdDidLoad];在 UIViewController_B 中。
因为如果我调用 [super viewdDidLoad];在 xxx_B 然后它正在从 xxx_A 进行 http 调用,我不想要这个。
最佳答案
viewDidLoad()
方法应该总是调用 super.viewDidLoad()
。不这样做可能会导致 Controller 无法正确实例化。
相反,您可以覆盖父 Controller 的所需行为。例如:
class ParentController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
performOperation()
}
func performOperation() {
print("Calling WebService from ParentController")
}
}
class ChildController: ParentController {
override func viewDidLoad() {
super.viewDidLoad() // <--- ALWAYS REQUIRED
// Custom initialization
}
override func performOperation() {
print("Overriding parent operation so it doesn't call the WebService")
}
}
关于ios - 在继承中我们可以通过 viewDidLoad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43515311/