viewDidLoad не вызывается при нажатии UIViewController

Я нажимаю UIViewController вот так:

UIViewController* individualsController = [[[UIViewController alloc] initWithNibName:@"IndividualsController" bundle:nil] autorelease];

[self.navigationController pushViewController:individualsController animated:YES];

Сам NIB загружается нормально, все элементы загружаются на экран. НО ни один из методов контроллера представления не вызывается. Нет viewDidLoad, нет viewWillAppear, просто выдвинутая NIB и ничего больше.

Выход для просмотра настроен в СИБ; Я не могу понять, почему никто не звонит!


person Peter Kazazes    schedule 29.09.2011    source источник


Ответы (1)


Одна из возможностей заключается в том, что вы создаете его как UIViewController, а не как имя вашего подкласса UIViewController, поэтому он вызывает эти методы, но в UIViewController, а не в вашем классе. Предполагая, что подкласс называется IndividualsController, попробуйте изменить строку на

IndividualsController* individualsController = [[[IndividualsController alloc] initWithNibName:@"IndividualsController" bundle:nil] autorelease];

и посмотрим, что получится.

person Matthew Gillingham    schedule 29.09.2011
comment
Это не просто возможность, это то, что произойдет, если код @ Peter действительно скажет UIViewController вместо MyViewController (или как бы там ни был вызван подкласс VC). - person Nick Forge; 29.09.2011