Сброс приложения на определенное событие - PullRequest
0 голосов
/ 29 июня 2011

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

1 Ответ

3 голосов
/ 29 июня 2011

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

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

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

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

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

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

...