2010-01-14 2 views
0

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

Я прошу Iphone

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

ответ

0

В своем деле делегат -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.

+0

, и если я уйду с моего 5-го представления, то как вернуться к 1-му виду – user217572

+0

, если я перехожу на 5-й вид после обработки 1,2,3,4 , то, как вернуться на 5-й взгляд вэнь Я прихожу из другого приложения в свое приложение. – user217572

+0

Вы можете сохранить идентификатор представления в виде целого числа с помощью '-setInteger: forKey:', а затем восстановить его с помощью '-integerForKey:' и сделать все, что вы хотите, с помощью этого целого. Он очень гибкий. Но я не понимаю, что вы подразумеваете под «вернуться к пятому виду». Это 5-й потомок * a la * 'UINavigationController' или 5-й элемент в форме * a la *' UITextField'? – kennytm

0

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

-(void)encodeWithCoder:(NSCoder*)coder 

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

-(id)initWithCoder:(NSCoder*)coder 

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

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

Смежные вопросы