Мне нужна помощь в выборе «правильного» решения для следующей «проблемы».
Я использую новую функцию раскадровки, чтобы связать все экраны моего приложения вместе.В основном структура детализируется до:
[Navigation Controller] => [View Controller # 1] => [Tabbar Controller] => [View Controller # 2] *
** (инекоторые другие вкладки, которые на данный момент не важны) *
Я прикрепил переход (push) от первого контроллера вида (# 1) к контроллеру вида за контроллером панели вкладок.Это нажатие срабатывает, когда пользователь что-то нажимает на первом контроллере и работает нормально.
// Execute preset segue
[self performSegueWithIdentifier:@"segueEventDetail" sender:self];
Когда пользователь (который теперь находится в View Controller # 2) нажимает кнопку возврата в навигационной панели, на которую пользователь нажимаетназад.Предположим, что он теперь снова запускает переход, второй контроллер представления снова отображается, но теперь «сброшен» (пуст).(Я полагаю, что после прочтения нескольких форумов и статей это стандартное поведение при использовании segue, поскольку они каждый раз уничтожают и повторно инициализируют контроллер представления?)
Это (сброс контроллера представления) создает проблему, поскольку содержимоеКонтроллер второго представления является динамическим (зависит от ответа JSON от сервера), и поэтому «необходимо», чтобы контроллер представления оставался неповрежденным (или восстанавливался), когда пользователь возвращается.
Я нашел несколько источников(см. внизу) описание той же проблемы, но решения различаются, и мне нужна помощь в выборе правильной.
Подведите итог:
- Как я могу «сохранить» / сохранить состояниеКонтроллера Представления, когда пользователи нажимают назад, сохраняя использование Раскадровки и предпочтительно также
Собственных Мысли Segue:
# 1 Я сейчасподумав о кэшировании ответа JSON в мой одноэлементный класс (и оттуда в PLIST) и проверке во втором контроллере представления, еслиесли данные присутствуют, а затем перестраиваем представление, после чего я проверяю наличие новых данных (возобновить нормальную работу).
# 2 Еще один вопрос, о котором я думаю, - это «обход» переходаи вручную обработать переключение представлений, частично объясненное в ( Раскадровка - обратитесь к ViewController в AppDelegate ) - Это также возможно?
Но, возможно, есть более простой / лучший вариант?
http://www.iphonedevsdk.com/forum/iphone-sdk-development/93913-retaining-data-when-using-storyboards.html Раскадровка - обратитесь к ViewController в AppDelegate Как сериализовать UIView?