Восстановление состояния в iOS
Я храню экран своего приложения, чтобы при открытии приложения отображался сохраненный экран. Приложение на основе навигации.
Я назначил идентификаторы восстановления двум моим контроллерам представлений в основной панели рассказов. Первый контроллер является корневым контроллером представления навигационного контроллера. Я также назначил Restoration Id для контроллера навигации. Теперь проблема в том, что когда я запускаю приложение, я получаю следующее предупреждение:
Невозможно создать восстановление в файле маркера прогресса.
Не уверен, что еще нужно сделать.
3 ответа
У меня было то же самое предупреждение прежде и исправило это, делая следующее.
Я использовал раскадровку. Моя раскадровка включала только контроллер представления навигации и контроллер представления (который был корневым контроллером представления этого контроллера представления навигации). В моем случае это было вызвано одной из двух причин:
Приложение не было правильно настроено для сохранения состояния. Необходимо установить следующее:
В делегате приложения переопределите приложение: willFinishLaunching. Можно просто вернуть YES в этом методе.
Для всех контроллеров представления и представлений (включая контроллеры представления навигации и контроллеры представления вкладок) установите идентификатор восстановления
В приложении делегат, отказаться от переопределения
shouldSaveApplicationState
а такжеshouldRestoreApplicationState
Если это предупреждение все еще появляется, вы можете проверить, как вы запускаете свое приложение в XCode. Я запустил свое приложение в симуляторе XCode и должен был следовать определенной последовательности, чтобы вызвать сохранение состояния.
- запустить приложение в симуляторе Xcode
- В симуляторе Xcode нажмите кнопку "Домой", чтобы переместить приложение в фоновый режим.
encodeRestorableStateWithCoder
метод контроллера представления должен быть вызван - вернитесь в Xcode, нажмите кнопку "стоп", чтобы прекратить симуляцию
- В симуляторе Xcode дважды нажмите кнопку "Домой", а затем удалите приложение из переключателя приложений и
- вернитесь в Xcode, снова запустите приложение.
Это предупреждение не должно появляться. Когда я использовал другие последовательности, я увидел это предупреждение. Когда я отлаживал свое приложение на своем устройстве с помощью XCode, я следовал той же последовательности и не видел предупреждение.
Я думаю, что в предупреждении указывалось, что, поскольку XCode не может правильно завершить работу приложения, файл восстановления состояния не был правильно сохранен на диск.
Попробуйте дать вашему View идентификатор восстановления. Вы можете сделать это, чтобы открыть свою XIB или раскадровку и назначить идентификатор своему View Controller.
более подробная информация: http://useyourloaf.com/blog/2013/05/21/state-preservation-and-restoration.html
Тренажер:
- Это происходит впервые на симуляторе, когда приложение кодирует. (не уверен почему)
- В последующие времена это предупреждение не будет показано.
Прибор:
Попробуйте запустить на устройстве.
- Запустить на устройстве
- Перейти на домашний экран.
- Хватит работать на Xcode
- Удалить приложение из переключателя приложений
- Запустите на устройстве снова