2010-08-16 6 views
1

J'ai un contrôleur de vue (vue A) présentant une vue modale (B) lorsque l'utilisateur appuie sur un bouton et que la vue B possède un bouton pour présenter la vue C. Mon problème est que si l'utilisateur quitte l'application lorsque la vue B ou C est affichée, la même vue apparaîtra au prochain lancement de l'application. Existe-t-il un moyen de fermer les vues B et C en quittant ou d'afficher l'affichage A lorsque l'application démarre? Merci pour votre aideQuitter le contrôleur de vue modale à la sortie de l'application

Répondre

6

Je suppose que de près vous voulez dire quand l'application entre en arrière-plan.

Dans votre délégué de l'application, vous pouvez via la méthode applicationDidEnterBackground: supprimer votre contrôleur.

Le meilleur moyen serait probablement d'ajouter un observateur à votre avis classe contrôleur:

- (void) viewDidLoad { 
    [super viewDidLoad]; 
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(appClosing) name:@"appClosing" object:nil]; 
} 

- (void) dealloc 
{ 
    [[NSNotificationCenter defaultCenter] removeObserver:self name:@"appClosing" object:nil]; 
    [super dealloc]; 
} 

- (void) appClosing 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

Et dans votre délégué application poster la notification:

- (void)applicationDidEnterBackground:(UIApplication *)application 
{ 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"appClosing" object:nil]; 
} 
+0

Merci pour votre réponse. J'ai essayé votre solution et cela fonctionne. J'ai aussi trouvé une autre solution plus simple, l'affichage de la vue principale à la sortie (Aussi je reçois un avertissement quand je compile): - (void) applicationDidEnterBackground: (UIApplication *) application { \t [auto presentModalViewController: viewController.view animé: NON]; } À la votre – Cyril

Questions connexes