如何在iPhone中使用NSUserDefaults保存应用程序状态?

时间:2010-06-08 06:15:23

标签: iphone nsuserdefaults

以下是我正在做的事情:

- (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];
    }
}

1 个答案:

答案 0 :(得分:1)

看起来你正在尝试将UIViewController添加到userdefaults?我怀疑这会奏效。

我想你必须在那里放一些识别字符串或数字,告诉你当前显示哪个viewcontroller,以及应用程序启动时基本上检查该值并相应地设置你的viewcontrollers。

我需要为我的应用程序实现类似的东西。我有一个对象列表,当用户点击一个对象时,我正在显示一个子对象。我的想法是存储客户端对象的ID(如果当前正在显示),否则为NULL。当应用程序启动时,我将检查该值。如果它为NULL,我将显示父对象列表,否则我将显示具有userdefaults中的ID的子对象。