我不知道什么是正确的地方设置像导航栏的tintColor或我的ViewController的标题。它也适用于-init方法和-viewLoad方法。做这件事的"最佳实践"或"正确方法"是什么?这其中有什么优点吗?
init
方法(是的,有不止一个)是UIViewController
初始化的地方。因此,这是您为UIViewController
做事情的地方,而不是它的视图。
如果您使用nib
来加载视图,那么设置任何属性的最佳位置是viewDidLoad
方法。这个方法在nib
被加载后被调用。如果您使用loadView
方法以编程方式设置视图,那么这里就是设置UIControl
属性的地方。
由于系统可以卸载视图以节省内存,因此它将单独留下UIViewController
。在init
方法中设置的任何属性都不会再次应用,因为UIViewController
已经初始化了。
init方法是用来初始化viewController的,而viewDidLoad方法是用来加载你的nib的。你的视图)。所以当你想对你的viewController做一些事情时使用init方法当你想对你的视图做一些事情时使用viewDidLoad。
正确的位置是设置在viewDidLoad
中。要了解这些方法的更多信息,apple提供了
简单来说,init
用于准备数据。viewDidLoad
用于向视图中填充数据。
根据Apple's Documents
初始化方法Task:分配视图控制器所需的关键数据结构
讨论:您的自定义初始化方法(无论是命名为init还是其他东西)始终负责将视图控制器对象置于已知的良好状态。使用这些方法分配任何数据结构,以确保正确的操作。
viewDidLoad
Task:分配或加载要显示在视图中的数据。
讨论:使用viewDidLoad方法来加载任何你想要显示的数据对象。当这个方法被调用时,你的视图对象被保证存在并且处于已知的良好状态。