我正在尝试构建一个教育应用程序,它将拥有大约3-5个完全不同的页面/屏幕。每个屏幕包含一个谜题,每个谜题独立于所有其他谜题(屏幕)。一旦解决了当前屏幕上的拼图,我想转换到一个新的(随机选择的)屏幕。我会允许多次显示相同的谜题,但是,如果它在需要重置之前已经显示过。
我尝试过使用segues但这似乎需要一个UINavigationController,这不是我想要呈现的体验(因为它需要预定义的屏幕层次结构)。
我认为最好的方法是将每个屏幕作为完全独立的UIViewControllers,对吗?我只是不确定如何协调它们之间的导航/渲染。
我很欣赏你所知道的最佳实践。谢谢!
答案 0 :(得分:2)
这里有一个可能的选择:
首先,如果您希望这些谜题之外的菜单将其作为UINavigationController
中的根视图控制器。
然后创建一个启动器控制器并在适当时将其添加到导航控制器。这将是一个常规的UIViewController
,除了在viewWillAppear
方法中的这个控制器中,它选择一个随机数0-5并通过一个开关运行它,并根据数字推送你的一个视图控制器。然后当拼图完成时,在导航控制器上调用popViewController
。现在当它弹回时,viewWillAppear
将再次被调用并随机推送另一个。然后,如果您想随时返回主菜单,请拨打popToRootViewControllerAnimated
。这应该做你需要的。并且要做到这一点,它没有动画两次要么只有推动动画或只有流行音乐。
答案 1 :(得分:0)
您可以拥有一个控制器,而不是拥有不同的视图控制器。完成第一个后,您可以重新加载拼图视图。你申请第一个谜题的逻辑将是与其他谜题类似的一些逻辑。所以现在只需要处理拼图的不同状态。 例如:我有第一个视图有拼图3x3矩阵,下一个将是4x4矩阵,下一个将是5x5矩阵。所以这个状态需要通过视图控制器中的代码来处理。
答案 2 :(得分:0)
我知道使用cocos2d是构建游戏的好方法,它允许不同的“场景”,在这些场景中,事物彼此独立,或者如果您愿意,可以进行交流。还有cocos2d,有一个“导演”处理所有场景,可以为你推送场景。如果您好奇,请查看:www.cocos2d-iphone.org
我希望这会有所帮助:)
答案 3 :(得分:0)
好吧,我正在构建昨天测试的应用程序来播放不同的乐器。我使用UIView
来处理我的3个乐器的视图。逻辑很简单。我将导航放在UIButton
上,并为每个乐器添加subview
。当用户触摸按钮时,所选视图将添加到前面,最后一个视图将在后台发布或临时。
希望它会对你有所帮助。