0

关于我正在为学校开发的应用程序,我有一个简短的问题。在我的应用程序中,我们有 5 个用户可以玩的独特游戏。但是,每个游戏都有 2 种模式,普通模式和困难模式。这样做的最佳方法是什么。目前,我的第一个游戏是两个独立的视图控制器,并根据所需的难度(一个称为 normal_cstars 和 hard_cstars)进行调用。我想知道这是否有效,因为每个视图控制器都有一个 .h、.m 和一个 .xib。是否有可能拥有一个具有两个独立视图的视图控制器,您将如何实现这一点。

谢谢,

王瑞安

4

2 回答 2

0

当然。您可以选择在视图控制器中显示的两个视图之一。只需在视图控制器中发送 self.view 即可成为您想要使用的视图。

一种架构方法是让两个单独的视图类共享相同的控件。控件都由视图控制器处理,而每个视图都绘制自己的布局。

并且不要担心在两个主视图之间共享子视图——或者你可以保留你的两个视图控制器,并且只拥有构成每个视图控制器表示的视图和控件的共享类。仅仅因为你有两个视图控制器并不意味着你必须有冗余代码。从动画视图到控件,将事物拆分为单独的类。

还有很多其他的可能性。查看 Apple 的一些示例,了解如何使用多个视图控制器。

于 2013-10-31T02:12:36.777 回答
0

你真的认为你需要两个不同的视图吗?(虽然我不确定你的游戏)

由于游戏模式是特定于模型的,因此具有“普通”或“困难”行为的模型实际上会在视图中渲染游戏。

如果在不久的将来,如果您想实现“简单”模式,那么您最终会使用另一个视图控制器并且可能会遇到代码冗余。

解决方案我认为:

  • 为您的模型对象创建对组合模式的继承。
  • 视图控制器将更加通用,并告诉视图根据模式进行渲染
  • 现在模型的基类将实现通用方法,并且由于模型具有模式作为组合,视图将基于它渲染游戏对象。

优点?- 我们没有违反开闭原则。

再次有各种各样的设计模式来实现这一点。由您决定哪个最适合您的要求。

于 2013-10-31T03:06:32.047 回答