initWithNibName VS viewDidLoad

强颜欢笑 提交于 2020-01-21 01:45:31

问题


I've been trying to understand for hours when I should use the viewDidload: and when I should use initWithNibName: to set up the properties of my viewController.

For instance, I'm using a TableViewController and I'm setting all its properties (such as the backgroundColor, the separateColor, the toolbar items) in initWithNibName. It is the right way to do ?

If somebody could enlighten me.

Thanks


回答1:


You should set up your properties in the viewDidLoad. This method is called by the system when the controller's view is loaded into memory. The initWithNibName: is something that you call when you create a controller instance from a nib file.

That is to say, that if you set up your properties in the initWithNibName: and instead you call init, your controller might not be in a good state; thus, it's best to do in viewDidLoad.




回答2:


You should use viewDidLoad: method of your controller. To quote from Apple's documentation on initWithNib:

The nib file you specify is not loaded right away. It is loaded the first time the view controller’s view is accessed. If you want to perform additional initialization after the nib file is loaded, override the viewDidLoad method and perform your tasks there.




回答3:


initWithNibName: is called when the NIB is loaded and instantiated.

viewDidLoad: is called when your view is actually presented onscreen.

And yes - I believe that in your case, setting colors and such are best done in initWithNibName



来源:https://stackoverflow.com/questions/8735393/initwithnibname-vs-viewdidload

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!