我有一个主菜单,可以显示您玩游戏的视图。从您玩游戏的视图中,您可以单击按钮返回主菜单,我正在使用unwindSegue。有没有办法现在点击主菜单中相同的“玩游戏”按钮,替换视图,并保持游戏状态,因为unwindSegue被调用之前或我是否必须将数据重新加载存储在新视图中?
答案 0 :(得分:1)
是的,你可以这样做,但不能使用segue,因为它们总是实例化新的控制器(除了展开)。因此,您可以在主菜单中为您的游戏视图控制器创建一个属性,并且只有在它尚不存在时才实例化,然后使用pushViewController推送它:animated:。像这样的东西,
-(IBAction)gotToGameView:(id)sender {
if (! self.game) {
self.game = [self.storyboard instantiateViewControllerWithIdentifier:@"Game"];
}
[self.navigationController pushViewController:game animated:YES];
}
答案 1 :(得分:0)
您应该存储重新创建视图所需的数据。然后,当用户再次进入同一屏幕时,您可以使用保存的数据重新创建视图。