Несколько вызовов для viewDidLoad / loadView - PullRequest
6 голосов
/ 11 июня 2009

В одном из представлений, которые я запускаю программно, я вижу 5 разных вызовов на 'loadView / viewdidLoad', но я не понимаю, почему вызывается это множество. Может кто-нибудь объяснить мне механику, стоящую за этим?

Я запускаю представление в родительском экземпляре UIViewController (часть приложения TabBar + NavigationBar) следующим образом:

MainEditController *editController = [[MainEditController alloc] initWithNibName:@"MainEditView" bundle:nil];           
[self.navigationController pushViewController:editController animated:YES];         
[editController release];   

Затем я записываю MainEditController's viewDidLoad и loadView методы (и вызываю их соответствующие супер методы).

Перо 'MainEditView' содержит 3 элемента: - Владелец файла (типа MainEditController), Первый ответчик (типа UIResponder) -Просмотр (типа UIView)

Выход просмотра связан с владельцем файла, и в представлении нет элементов. То, что я собираюсь сделать, это добавить несколько представлений sub к основному представлению и отобразить одно из subview на основе определенного условия.

Я думал, что и viewDidLoad, и loadView вызовут столько же представлений (в данном случае 1) в контроллере, но это не является допустимым предположением.

Ответы [ 4 ]

14 голосов
/ 12 июня 2009

Ваш loadView метод вызывает [super loadView]? Если нет, то свойство view, скорее всего, не настроено должным образом, и поэтому к следующему time .view осуществляется попытка его загрузки снова.

Ударить в темноте, но без метода loadView трудно определить, в чем может быть проблема.

6 голосов
/ 12 июня 2009

Я не уверен, что это то, что вы видите, но навигационный контроллер выдаст представления, которые в данный момент не видны, чтобы восстановить память, если приложение получит предупреждение о нехватке памяти. Когда вид снова становится видимым, вид воссоздается, что вызывает loadView.

1 голос
/ 20 февраля 2012

Я решаю ту же проблему, удалив метод -(void)loadView. Если вы создаете UIViewController без nib-файла, этот метод будет автоматически добавлен в код.

0 голосов
/ 04 апреля 2011

Установите свойство представления контроллера представления в допустимое представление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...