我有一个回合制游戏,有2个视图控制器,主菜单和实际的游戏控制器。当在游戏视图控制器上时,玩家可以轮到他们,然后在同一视图上访问游戏中心。然后,一旦进入游戏中心,他们就可以开始一个新游戏(或者看看他们已经开始的其他游戏)。我遇到的问题是当他们选择开始新游戏并且游戏中心解散时,该视图具有来自前一游戏的元素。如何开始新游戏或将游戏视图控制器的新实例添加到堆栈中?
答案 0 :(得分:0)
我的建议是创建一个NSMutableArray。数组的每个索引都可以存储视图或视图控制器的实例,具体取决于您的算法。在视图之间切换时,在数组的索引之间切换。此外,如果创建了新游戏,请创建视图或视图控制器的新实例并将其添加到数组中。然后,当在游戏之间切换时,拉出不同的索引。这样,一次只呈现一个索引,并且不同的视图彼此隔离。此外,您可以归档每个索引中每个视图的数据,因此如果从屏幕中删除视图,理论上可以存储实例变量的值。然后,当用户回调该视图(或游戏)时,创建视图或视图控制器的新实例,并根据存档数据填充其变量和设置。