Сброс приложения на определенное событие

Я пишу приложение для iPhone, и после определенного события, скажем, пользователя, выигравшего игру, я хотел бы вернуть приложение в исходное состояние сразу после его запуска. Например, повторное выполнение viewDidLoad() и т. Д. Есть ли простой способ сделать это в XCode и цели C? Спасибо.

1 ответ

Вы отвечаете за состояние своего приложения - если вы знаете, каковы начальные настройки, вы сможете вернуть все в это состояние. Там нет простого [UIApplication reset] метод, но есть несколько методов, которые облегчают работу:

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

  • Переместите код инициализации в другой метод, а затем вызовите его из обоих ваших -init метод и ваш обработчик уведомлений сброса.

  • Вы можете заставить контроллер представления перезагрузить свой вид, установив его свойство вида в nil. При следующем доступе к этому свойству -loadView будет вызван, и это, в свою очередь, загрузит соответствующий.xib или создаст необходимые представления.

  • Во многих случаях вы можете просто сбросить модель данных приложения в исходное состояние. Представления в вашем приложении обычно должны отражать состояние модели данных, поэтому очистка данных должна привести к тому, что представления также вернутся в исходное состояние.

  • Подумайте, зачем вам это действительно нужно. Это может иметь смысл, если у вас есть кнопка "Сброс к заводским настройкам", но это также может указывать на то, что требуется больше дизайна. Почему пользователь не может просто выбрать все данные и удалить их? Какое состояние вы держите, чтобы пользователь мог сбросить таким образом?

Другие вопросы по тегам