2010-06-08 131 views
3

以下是我在做什麼:如何在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]; 
    } 
} 
+0

它工作嗎?如果不是,爲什麼?你期望代碼做什麼,它究竟做了什麼? – zoul 2010-06-08 06:21:30

回答

1

它看起來像你想一個UIViewController添加到userdefaults?我懷疑這會起作用。

我想你必須在那裏放置一些標識符字符串或數字,告訴你當前顯示的是哪個viewcontroller,當應用程序啓動時基本檢查該值並相應地設置你的viewcontrollers。

我需要爲我的應用程序實現類似的東西。我有一個對象列表,當用戶點擊一個對象時,我正在顯示一個子對象。我的想法是存儲客戶端對象的ID,如果當前正在顯示,否則爲NULL。當應用程序啓動時,我會檢查值。如果它是NULL,我將顯示父對象的列表,否則我將使用userdefaults中的ID顯示子對象。

相關問題