Как я могу заменить точное представление, которое выскочило после использования unwindSegue?
У меня есть главное меню, которое ведет к представлению, где вы играете в игру. В окне, где вы играете, вы можете нажать кнопку, чтобы вернуться в главное меню, для этого я использую unwindSegue. Есть ли способ теперь нажать на ту же кнопку "играть в игру" в главном меню, заменить представление и сохранить состояние игры, которое было до вызова unwindSegue, или мне придется сохранить перезагрузку данных в новом представлении?
2 ответа
Да, вы можете сделать это, но не с помощью перехода, так как они всегда создают новые контроллеры (за исключением раскрутки). Таким образом, вы можете создать свойство для вашего игрового контроллера в главном меню и создать его экземпляр, только если он еще не существует, а затем отправить его с помощью pushViewController:animated:. Что-то вроде этого,
-(IBAction)gotToGameView:(id)sender {
if (! self.game) {
self.game = [self.storyboard instantiateViewControllerWithIdentifier:@"Game"];
}
[self.navigationController pushViewController:game animated:YES];
}
Вы должны хранить данные, необходимые для воссоздания представления. Затем, когда пользователь снова входит в тот же экран, вы можете воссоздать представление с сохраненными данными.