2010-06-08 7 views
3

Ce qui suit est ce que je fais:Comment enregistrer l'état de l'application à l'aide de NSUserDefaults dans l'iPhone?

- (void) applicationWillTerminate: (UIApplication*) application { 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
    [defaults setObject:navigationController.viewControllers 
     forKey:@"diabetesstate"]; 
} 

- (void) applicationDidFinishLaunching: (UIApplication*) application { 
    NSMutableArray *state = [[NSUserDefaults standardUserDefaults] 
     objectForKey:@"diabetesstate"]; 
    if (state == nil) { 
     //Will initialize a new controller and put it as root view controller 
    } 
    else { 
     [navigationController setViewControllers:state animated:NO]; 
    } 
} 
+0

Cela fonctionne-t-il? Si non, pourquoi? Que voulez-vous que le code fasse, qu'est-ce qu'il fait vraiment? – zoul

Répondre

1

On dirait que vous essayez d'ajouter un UIViewController aux userdefaults? Je doute que cela fonctionnera.

Je suppose que vous devrez mettre une chaîne d'identification ou un numéro qui vous indique quel viewcontroller est actuellement affiché, et quand l'application commence à vérifier fondamentalement cette valeur et à configurer vos viewcontrollers en conséquence.

J'ai besoin de mettre en œuvre quelque chose de similaire pour mon application. J'ai une liste d'objets, et quand l'utilisateur tape sur un, j'affiche un objet enfant. Mon idée est de stocker l'ID de l'objet client si un objet est actuellement affiché, sinon NULL. Lorsque l'application démarre, je vais vérifier la valeur. Si c'est NULL, je vais afficher la liste des objets parents, sinon je montrerai l'objet enfant avec l'ID qui est dans userdefaults.