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 。 为了更多地了解这些方法,苹果提供了文档