2012-02-02 5 views
7

В программировании iOS 4 от Matt Newburg он утверждает: «Чтобы обеспечить UIViewController с представлением вручную, реализовать свой метод loadView ... Вы НЕ должны называть супер».Следует ли вызывать [super loadView] из loadView или нет?

В поваренной книге разработчика IOS 5 от Erica Sadun она заявляет: «Метод loadView позволяет настроить экран и компоновку любых подзонов .... Обязательно вызывайте [super loadView] всякий раз, когда вы наследуете от специализированного подкласс, такой как UITableViewController или UITabBarController. "

Это, по крайней мере, мне смущает.

ответ

4

Apple является источником правды, и они говорят, что нет супер-звонка.

Если переопределить этот метод для того, чтобы создать свои взгляды вручную, вы должны сделать это и назначить вид корневой иерархии к свойству зрения. (Создаваемые вами представления должны быть уникальными экземплярами, а не должны использоваться совместно с каким-либо другим объектом контроллера.) Ваша пользовательская реализация этого метода не должна быть вызвана супер.

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html

[править]

Еще одно важное замечание разбросаны по ссылке класса UIViewController:

Метод loadView по умолчанию пытается загрузить вид из бобах файла, связанного с контроллером представления (если есть).

+0

Упс. По какой-то причине я думал, что они не заявили об этом конкретно. –

+0

У меня есть короткий вопрос об этом. У меня AppDelegate и установите его rootView в другой экземпляр класса UIViewController (где я изменяю представление в loadView). Если я не вызываю [super loadView], метод вызывается три раза. Если я это именую, все будет идеально. Так что я пропустил что-то в документации Apple? Если мне не разрешено делать [super loadView], где я должен настроить свое представление, если я не загружаю представление из nib? – andi1984

+0

Если я установил UINavigationController как rootViewController в делегат приложения и вытащил UIViewController в стек navcontroller, все будет отлично. Поэтому я не понимаю, почему возникают эти различия. – andi1984

Смежные вопросы