initWithNibName VS viewDidLoad - PullRequest
       6

initWithNibName VS viewDidLoad

8 голосов
/ 05 января 2012

Я часами пытался понять, когда мне следует использовать viewDidload: и когда я должен использовать initWithNibName: для настройки свойств моего viewController.

Например, я использую TableViewController и устанавливаю все его свойства (такие как backgroundColor, ОтдельныйColor, элементы панели инструментов) в initWithNibName.Это правильный способ сделать?

Если бы кто-нибудь мог просветить меня.

Спасибо

Ответы [ 3 ]

12 голосов
/ 05 января 2012

Вы должны настроить свои свойства в viewDidLoad. Этот метод вызывается системой, когда представление контроллера загружается в память. initWithNibName: - это то, что вы вызываете при создании экземпляра контроллера из файла пера.

То есть, если вы установите свои свойства в initWithNibName: и вместо этого вызовете init, ваш контроллер может быть не в хорошем состоянии; таким образом, лучше всего это сделать в viewDidLoad.

3 голосов
/ 05 января 2012

initWithNibName: вызывается, когда NIB загружается и создается.

viewDidLoad: вызывается, когда ваше представление фактически отображается на экране.

И да - я считаю, что в вашем случае лучше всего настроить цвета и т.д. в initWithNibName

3 голосов
/ 05 января 2012

Вы должны использовать viewDidLoad: метод вашего контроллера.Цитата из документации Apple по initWithNib:

Указанный вами файл пера не загружается сразу.Он загружается при первом обращении к представлению контроллера представления.Если вы хотите выполнить дополнительную инициализацию после загрузки nib-файла, переопределите метод viewDidLoad и выполните там свои задачи.

...