我一直试图理解我应该使用viewDidload的几个小时:当我应该使用initWithNibName:来设置我的viewController的属性。
例如,我正在使用TableViewController,并且我在initWithNibName中设置了它的所有属性(例如backgroundColor,separateColor,工具栏项)。这是正确的方法吗?
如果有人可以启发我。
由于
答案 0 :(得分:12)
您应该在viewDidLoad
中设置您的媒体资源。当控制器的视图加载到内存中时,系统会调用此方法。当您从nib文件创建控制器实例时,initWithNibName:
是您调用的内容。
也就是说,如果您在initWithNibName:
中设置了属性,而是调用init
,那么您的控制器可能不会处于良好状态;因此,最好在viewDidLoad
中进行。
答案 1 :(得分:3)
您应该使用控制器的viewDidLoad:方法。引用Apple关于initWithNib的文档:
您指定的nib文件不会立即加载。它是在第一次访问视图控制器的视图时加载的。如果要在加载nib文件后执行其他初始化,请覆盖viewDidLoad方法并在那里执行任务。
答案 2 :(得分:3)
initWithNibName:在加载并实例化NIB时调用。
viewDidLoad:在您的视图实际显示在屏幕上时调用。
是的 - 我相信在你的情况下,设置颜色等最好在initWithNibName中完成