Сохранение состояния просмотра iphone SDK - PullRequest
1 голос
/ 25 мая 2009

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

Затем во втором виде я устанавливаю некоторое значение в метке, и когда я нажимаю назад, он возвращается к первому виду.

Проблема: теперь я снова на первом экране, если я снова нажму на следующую кнопку, значение метки, которое я установил на втором экране, будет потеряно.

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

Ответы [ 2 ]

1 голос
/ 25 мая 2009

MVC - твой друг.

В вашем представлении отображаются только данные, хранящиеся в модели. Таким образом, если вы отображаете информацию о человеке, данные сохраняются в объекте персонажа. Ваше представление будет иметь ссылку на объект персонажа, который он отображает, чтобы он мог читать данные. View не устанавливает никаких данных об объекте person, что делается через контроллер. Ваш контроллер соединяет вашу модель (данные) и представление, удерживая ссылки на оба.

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

Взгляните на Model-View-Controller и UIViewController в ссылках Apple.

1 голос
/ 25 мая 2009

Это зависит. Есть много способов.

Я ожидаю, что каждый раз, когда вы нажимаете на экран второе представление, вы создаете его новый экземпляр. В любом случае, независимо от того, есть вы или нет, вы должны сохранить значение метки в модели, а не ожидать, что представление сохранит данные (см. Шаблон проектирования MVC). Затем в функции -viewDidLoad: контроллера второго вида установите значение метки на прежнее значение.

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