Приведенный выше ответ не выглядит правильным, в любом случае в iOS 6.1. Когда я создаю вид с контроллером, как это:
self.welcomeController = [[DPLWelcomeViewController alloc] initWithNibName:@"DPLWelcomeViewController" bundle:nil];
self.welcomeController.view.frame = self.window.screen.applicationFrame;
self.welcomeController.delegate = self;
[self.window.rootViewController.view addSubview:self.welcomeController.view];
-viewWillAppear вызывается (если свойство self.welcomeController является сильным).
С другой стороны, когда я сделал это так:
DPLWelcomeViewController *welcomeController = [[DPLWelcomeViewController alloc] initWithNibName:@"DPLWelcomeViewController" bundle:nil];
welcomeController.view.frame = self.window.screen.applicationFrame;
welcomeController.delegate = self;
[self.window.rootViewController.view addSubview:welcomeController.view];
ARC очистил его после выхода из этого метода, и, насколько я могу судить, -viewWillAppear отправлено на ноль. (Несмотря на то, что я мог видеть представление Welcome на моем экране - я полагаю, что rootViewController.views сохранил view , но ничего не сохранило viewController .)