2017-01-18 3 views
0

Пример:Как сохранить состояние UIViewController после нажатия кнопки «Назад» в UINavigationController?

  1. Введите свое имя в первом контроллере представления.

  2. После ввода вашего имени вы нажимаете навигационный контроллер на день рождения, в котором вы вводите свой день рождения.

  3. Нажмите кнопку «Назад» на первый контроллер вида.

  4. Затем нажмите на контроллер дня рождения, снова отображая вход, который вы ранее вводили.

Это был пример логики регистрации Snapchat.

Как это возможно? Нужно ли мне подкласс UINavigationController и возиться с поведением?

+1

Просто хранить значение в NSUserDefault и доступ к нему в любом месте в любом контроллере. –

+1

Вы также можете использовать singleton для хранения значения, если вы не хотите, чтобы он сохранялся после завершения приложения. – Tj3n

+0

[[NSUserDefaults standardUserDefaults] setValue: YOURTEXTFIELD.text forKey: @ "Дата рождения"]; и извлеките эту дату рождения NSString * YOURVARIABLE = [[NSUserDefaults standardUserDefaults] ValueForKey: @ "Дата рождения"]; –

ответ

0

Вы можете хранить дату рождения в NSUserDefault как этот

[[NSUserDefaults standardUserDefaults] setObject:_txt_birthday.text forKey:SIGNUP_DATEOFBIRTH]; 

и получить его в контроллере представления на день рождения, как этот

NSString *strDate = [[NSUserDefaults standardUserDefaults] objectForKey:SIGNUP_DATEOFBIRTH]; 
0

Если вы просто хотите сохранить день рождения, то вы можете сохранить его в NSUserDefault. Но если вы хотите сохранить все состояние своего контроллера с большим количеством элементов и значений пользовательского интерфейса, тогда вы должны пойти на App State Restoration. Есть учебник для этого ..

https://www.raywenderlich.com/117471/state-restoration-tutorial

http://useyourloaf.com/blog/state-preservation-and-restoration/