Как сохранить состояние приложения с помощью NSUserDefaults в iPhone? - PullRequest
3 голосов
/ 08 июня 2010

Вот что я делаю:

- (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 Ответ

1 голос
/ 08 июня 2010

Похоже, вы пытаетесь добавить UIViewController к пользовательским ошибкам? Я сомневаюсь, что это сработает.

Полагаю, вам придется добавить туда строку идентификатора или номер идентификатора, который скажет вам, какой viewcontroller отображается в данный момент, и когда приложение в основном запускается, проверьте это значение и соответственно настройте ваши viewcontroller.

Мне нужно реализовать нечто подобное для моего приложения. У меня есть список объектов, и когда пользователь нажимает на один, я показываю дочерний объект. Моя идея состоит в том, чтобы сохранить идентификатор объекта клиента, если он отображается в данный момент, иначе NULL. Когда приложение запустится, я проверю значение. Если он равен NULL, я выведу список родительских объектов, в противном случае я покажу дочерний объект с идентификатором, который находится в userdefaults.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...