我需要对所有UIViewcontroller运行通用功能,而无需手动指定“ self.function()”
答案 0 :(得分:1)
我认为无法在swift4中刷新viewDidload(),尽管可以通过刷新来更早地实现,而可以通过继承来实现
Class BaseVC: UIViewController {
func viewDidLoad() {
super.viewDidLoad()
/// customization here … e.g self.function()
}
}
Class CustomVC: BaseVC {
func viewDidLoad() {
super.viewDidLoad()
// you had called self.function no need to do it again
}
}
答案 1 :(得分:-1)
只需使用扩展名将自定义方法添加到UIViewController:
extension UIViewController {
func customFunc() {
print("Custom func is called")
}
}
现在,在从UIViewController继承的每个类中,您都可以轻松访问此函数:
class MainVC: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//call your func
customFunc()
}
}
答案 2 :(得分:-3)
在无法修改的类(例如request.resource.data.user == resource.data.user
基类)中覆盖函数的唯一方法是使用swizzling方法。
您使用此技术来使UIViewController
或viewDidLoad
陷入混乱。
在大多数情况下,您应该只是根据需要viewDidAppear
子类化,并在生命周期方法重写中调用函数。