(例如)一次在多个 View Controller 中包含一行的最佳方法是什么(例如,在每个 VC 中的 ViewDidLoad 下包含一行代码)?
我只是在寻找一种比在 10 个不同的 VC 中复制粘贴更有效的方法
最佳答案
继承将帮助您:
class BaseViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// your settings for all view controllers here:
self.view.backgroundColor = UIColor.lightGrayColor()
}
}
class HomeViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
}
}
class ChatViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
}
}
class ProfileViewController: BaseViewController {
override func viewDidLoad() {
super.viewDidLoad() // call code from BaseViewController.viewDidLoad()
}
}
另一种选择是 Swift 扩展:
extension UIViewController {
func configureView() {
self.view.backgroundColor = UIColor.lightGrayColor()
}
}
class HomeViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
configureView()
}
}
class ChatViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
configureView()
}
}
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
configureView()
}
}
更多关于 Inheritance和 Extensions在 Swift 书中
关于ios - 如何一次将更改应用于多个 View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32124364/