как сохранить состояние для стольких просмотров конкретного приложения - PullRequest
0 голосов
/ 14 января 2010

У меня есть 1 заявка. Имеет почти 32 просмотра в режиме hiereachy с кнопкой возврата. Я хочу сохранить состояние каждого представления, а также, если я сохраню состояние этого представления, есть ли способ сделать это по коду или настройкой

прошу iphone

Мой простой вопрос: если я добавлю два текстовых поля в поле зрения, а затем нажму кнопку «Домой», затем перейду к другому приложению, а затем снова нажму кнопку «Домой», а затем перейду к своему приложению, я могу откройте тот вид, который я оставляю, а также текстовое поле или все, что я заполняю, будет сохранено

Ответы [ 2 ]

0 голосов
/ 14 января 2010

Если вы реализуете методы NSCoding на всех ваших представлениях и контроллерах представлений, вы можете сохранить все свои вещи в архиваторе с ключами, который можно будет легко восстановить позднее.Вы должны реализовать

-(void)encodeWithCoder:(NSCoder*)coder

, чтобы сохранить данные переменных всех экземпляров ваших классов, и

-(id)initWithCoder:(NSCoder*)coder

, чтобы восстановить их позже.Посмотрите на документацию по NSCoding;Должно быть официальное руководство Apple о том, как правильно его реализовать и использовать.

Приятная вещь во всем этом заключается в том, что UIView и UIViewController и их подклассы также реализуют их, например, если вы кодируете UINavigationControllerу вас автоматически будут бесплатно кодироваться все контроллеры представлений, которые существуют в стеке навигации, что должно дать вам то, что вам нужно, если вы также внедрите методы NSCoding в своих собственных классах.

0 голосов
/ 14 января 2010

В делегате вашего приложения -applicationWillTerminate: сохраните информацию, например,

....
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
[defs setObject:myFirstTextField.text forKey:@"firstTextField"];
[defs setObject:mySecondTextField.text forKey:@"firstTextField"];
...

И в -applicationDidFinishLaunching: или -application:didFinishLaunchingWithOptions: восстановить информацию с помощью

....
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
myFirstTextField.text = [defs stringForKey:@"firstTextField"];
mySecondTextField.text = [defs stringForKey:@"firstSecondField"];
...

В общем, все, что вы хотите сохранить и восстановить, можно поместить в NSUserDefaults.

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