2010-02-15 4 views
1

Existe-t-il une technique intégrée permettant de passer directement au dernier UIViewController affiché avant de quitter votre application?Chargement du dernier UIViewController en cours de fermeture d'une application

J'essaye de comprendre s'il y a des manières intrinsèques de faire ceci avec le framework UIKit/Cocoa Touch. Si ce n'est pas le cas, je me rends compte que ce sera assez simple à mettre en œuvre, mais je ne veux pas le faire si quelque chose existe déjà.

Par exemple:

  1. Vous commencez votre application
  2. vous vous déplacez dans 3 UIViewControllers (dans un UINavigationController)
  3. vous vous déplacez dans une liste d'éléments chacun est affichée en plein écran, au point 5
  4. vous quit

vous redémarrez l'application et que vous voulez revenir sur cette dernière vue que vous étiez à s tep 3 - voir votre cinquième article.

Répondre

3

NSUserDefaults sera l'outil pour ce travail. Vous pouvez simplement enregistrer une clé pour indiquer votre position dans l'application, puis lire à nouveau cette touche lorsque l'application se lance à décider où aller:

// whenever you move to a new screen or item: 
[[NSUserDefaults standardUserDefaults] setObject:viewIdentifierString 
              forKey:@"last_view"]; 


// when your application opens: 
NSString * viewIdentifierString = [[NSUserDefaults standardUserDefaults] 
            stringForKey:@"last_view"]; 

if (viewIdentifierString == nil) 
{ 
    // show default view 
} 
else 
{ 
    // use viewIdentifierString to determine which view to load 
} 
+0

Voici comment je prévoyais de le faire, avec chaque contrôleur ayant une clé. J'espérais qu'il y avait un moyen plus paresseux de le faire que de pousser en fonction des touches si –

+0

Je ne crains pas. Comme chaque application peut avoir une manière différente de charger ses vues, il devient très difficile pour Cocoa d'avoir une méthode par défaut pour explorer la hiérarchie des vues. –

+0

merci beaucoup. Cela m'aide beaucoup.. – tesmojones

1

vous pouvez stocker votre dernière viewcontroller vue à un NSUserDefaults par exemple. puis dans votre délégué de l'application lire cette valeur et charger le contrôleur de vue nommé. Remplacez votre valeur NSUserDefaults à chaque init de vos viewcontrollers ou lorsque votre application est terminée.

Questions connexes