iOS:ViewController的-init和-viewLoad有什么区别?
我不知道什么是正确的地方来设置NavigationBar的tintColor或我的ViewController的标题。 它也在-init方法和-viewLoad方法中工作。 什么是“最佳做法”或“正确的方式”来做到这一点? 有这些优势之一?
init
方法(是的,有多个)是UIViewController
初始化的地方。 因此,这是你做UIViewController
东西,而不是它的意见。
如果您使用nib
加载视图,则设置任何属性的最佳位置是viewDidLoad
方法。 在nib
之后调用此方法的gest被加载。 如果以编程方式设置视图使用loadView
方法,那么这是设置UIControl
属性的地方。
由于系统可以卸载视图来节省内存,因此它将单独离开UIViewController
。 在init
方法中设置的任何属性都不会再被应用,因为UIViewController
已经被初始化了。
init方法用于初始化viewController,而viewDidLoad方法用于加载你的nib(即你的视图)。 所以当你想用你的viewController做一些事情,然后使用init方法,当你想用你的视图做什么,然后使用viewDidLoad。
正确的地方是将其设置在viewDidLoad
。 为了更多地了解这些方法,苹果提供了文档