2010-10-17 6 views

Répondre

5

viewWillAppear: est appelé par le contrôleur de vue parent lorsqu'il présente un autre contrôleur de vue (par exemple par pushViewController:animated: ou presentModalViewController:animated:). Il n'est jamais appelé lorsque vous appelez manuellement addSubview:.

+0

Je ne crois pas que cette réponse est correcte; voir ci-dessous. –

1

La réponse ci-dessus ne semble pas correcte, dans iOS 6.1 de toute façon. Lorsque je crée une vue avec un contrôleur comme ceci:

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 -t appelée (aussi longtemps que self.welcomeController est une propriété forte).

D'autre part, quand je l'ai fait comme ceci:

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 a nettoyé une fois cette méthode liquide', et mieux que je peux dire, -viewWillAppear à zéro fut expulsé. (Malgré le fait que je pouvais voir la vue Bienvenue sur mon écran - Je crois rootViewController.views conservé la vue , mais rien ne retenait la viewController.)

Questions connexes