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