我一直试图理解几个小时,当我应该使用viewDidload:和当我应该使用initWithNibName:设置我的viewController的属性。
例如,我正在使用一个TableViewController,我正在initWithNibName中设置它的所有属性(如backgroundColor, separateColor,工具栏项)。这是正确的做法吗?
如果有人能开导我。
谢谢
您应该在viewDidLoad
中设置属性。当控制器的视图加载到内存中时,系统会调用这个方法。initWithNibName:
是当您从nib文件创建控制器实例时调用的东西。
也就是说,如果你在initWithNibName:
中设置属性,而不是调用init
,你的控制器可能状态不好;因此,最好在viewDidLoad
中完成。
你应该使用控制器的viewDidLoad:方法。引用苹果关于initWithNib的文档:
您指定的nib文件没有立即加载。它在视图控制器的视图第一次被访问时被加载。如果你想在nib文件加载后执行额外的初始化,覆盖viewDidLoad方法并在那里执行你的任务。
initWithNibName:在NIB被加载和实例化时调用。
viewDidLoad:当你的视图实际显示在屏幕上时调用。
是的-我相信在你的情况下,设置颜色等最好在initWithNibName