initWithNibName VS viewDidLoad



我一直试图理解几个小时,当我应该使用viewDidload:和当我应该使用initWithNibName:设置我的viewController的属性。

例如,我正在使用一个TableViewController,我正在initWithNibName中设置它的所有属性(如backgroundColor, separateColor,工具栏项)。这是正确的做法吗?

如果有人能开导我。

谢谢

您应该在viewDidLoad中设置属性。当控制器的视图加载到内存中时,系统会调用这个方法。initWithNibName:是当您从nib文件创建控制器实例时调用的东西。

也就是说,如果你在initWithNibName:中设置属性,而不是调用init,你的控制器可能状态不好;因此,最好在viewDidLoad中完成。

你应该使用控制器的viewDidLoad:方法。引用苹果关于initWithNib的文档:

您指定的nib文件没有立即加载。它在视图控制器的视图第一次被访问时被加载。如果你想在nib文件加载后执行额外的初始化,覆盖viewDidLoad方法并在那里执行你的任务。

initWithNibName:在NIB被加载和实例化时调用。

viewDidLoad:当你的视图实际显示在屏幕上时调用。

是的-我相信在你的情况下,设置颜色等最好在initWithNibName

中完成

最新更新