iOS:ViewController的-init和-viewLoad有什么区别?

时间:2011-12-29 09:37:52

标签: ios uiviewcontroller

我不知道究竟是什么地方设置了像NavigationBar的tintColor或我的ViewController的标题。它也适用于-init方法和-viewLoad方法。这样做的“最佳实践”或“正确方法”是什么?有哪些优势?

3 个答案:

答案 0 :(得分:24)

init方法(是的,有多个方法)是初始化UIViewController的地方。因此,这是您为UIViewController而不是其观点进行处理的地方。

如果您使用nib加载视图,那么设置任何属性的最佳位置是viewDidLoad方法。加载nib后调用此方法。 如果以编程方式设置视图,请使用loadView方法,然后在此处设置UIControl属性。

由于系统可以卸载视图以节省内存,因此它将仅保留UIViewController。由于init已初始化,因此UIViewController方法中设置的任何属性都不会再次应用。

答案 1 :(得分:1)

init方法用于初始化viewController,而viewDidLoad方法用于加载你的nib(即你的视图)。因此,当您想要使用viewController执行某些操作时,请使用init方法,当您想对视图执行某些操作时,请使用viewDidLoad。

答案 2 :(得分:0)

正确的位置是在viewDidLoad中设置它。要了解有关这些方法的更多信息,Apple提供了documentation