关于我正在为学校开发的应用程序,我有一个简短的问题。在我的应用程序中,我们有 5 个用户可以玩的独特游戏。但是,每个游戏都有 2 种模式,普通模式和困难模式。这样做的最佳方法是什么。目前,我的第一个游戏是两个独立的视图控制器,并根据所需的难度(一个称为 normal_cstars 和 hard_cstars)进行调用。我想知道这是否有效,因为每个视图控制器都有一个 .h、.m 和一个 .xib。是否有可能拥有一个具有两个独立视图的视图控制器,您将如何实现这一点。
谢谢,
王瑞安
关于我正在为学校开发的应用程序,我有一个简短的问题。在我的应用程序中,我们有 5 个用户可以玩的独特游戏。但是,每个游戏都有 2 种模式,普通模式和困难模式。这样做的最佳方法是什么。目前,我的第一个游戏是两个独立的视图控制器,并根据所需的难度(一个称为 normal_cstars 和 hard_cstars)进行调用。我想知道这是否有效,因为每个视图控制器都有一个 .h、.m 和一个 .xib。是否有可能拥有一个具有两个独立视图的视图控制器,您将如何实现这一点。
谢谢,
王瑞安
当然。您可以选择在视图控制器中显示的两个视图之一。只需在视图控制器中发送 self.view 即可成为您想要使用的视图。
一种架构方法是让两个单独的视图类共享相同的控件。控件都由视图控制器处理,而每个视图都绘制自己的布局。
并且不要担心在两个主视图之间共享子视图——或者你可以保留你的两个视图控制器,并且只拥有构成每个视图控制器表示的视图和控件的共享类。仅仅因为你有两个视图控制器并不意味着你必须有冗余代码。从动画视图到控件,将事物拆分为单独的类。
还有很多其他的可能性。查看 Apple 的一些示例,了解如何使用多个视图控制器。
你真的认为你需要两个不同的视图吗?(虽然我不确定你的游戏)
由于游戏模式是特定于模型的,因此具有“普通”或“困难”行为的模型实际上会在视图中渲染游戏。
如果在不久的将来,如果您想实现“简单”模式,那么您最终会使用另一个视图控制器并且可能会遇到代码冗余。
解决方案我认为:
优点?- 我们没有违反开闭原则。
再次有各种各样的设计模式来实现这一点。由您决定哪个最适合您的要求。