以下是我正在做的事情:
- (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 :(得分:1)
看起来你正在尝试将UIViewController添加到userdefaults?我怀疑这会奏效。
我想你必须在那里放一些识别字符串或数字,告诉你当前显示哪个viewcontroller,以及应用程序启动时基本上检查该值并相应地设置你的viewcontrollers。
我需要为我的应用程序实现类似的东西。我有一个对象列表,当用户点击一个对象时,我正在显示一个子对象。我的想法是存储客户端对象的ID(如果当前正在显示),否则为NULL。当应用程序启动时,我将检查该值。如果它为NULL,我将显示父对象列表,否则我将显示具有userdefaults中的ID的子对象。