【问题标题】:Multiple View Controllers for a single View on the iPhoneiPhone 上单个视图的多个视图控制器
【发布时间】:2010-11-22 03:36:03
【问题描述】:

想想基于 iPhone 的电子邮件客户端。您拥有三个具有相同 UI 的“状态”:新消息、回复和转发(忽略任何其他状态)。

我想要一个视图,并有不同的视图控制器与视图交互。鉴于视图是在 Interface Builder 中构建的(有很多 IBOutlets 和 IBActions),那么最好的方法是什么?

【问题讨论】:

  • 不要这样做,它不受支持。一个视图控制器始终负责一个视图层次结构。
  • @Jason 在不同的视图控制器中重用视图并没有错,这就是首先拥有视图控制器的全部意义。
  • 你是如何创建这些新的视图控制器的?你能通过感兴趣的观点吗?即[viewController setStateView:currentStateView];

标签: iphone uiviewcontroller interface-builder


【解决方案1】:

我认为你说的没有道理。

相同的视图控制器(即本质上是“您的应用程序”)只会在三种需求之间变化。

另外 - 这三个视图似乎不太可能完全相同,因此制作三个不同的视图/控制器。

(您有许多“相似”视图是完全正常的——它们确实只是单独的视图,但它们恰好在图形上相似。)

另外 - 您很可能拥有一个整体视图(/控制器),而仅仅坐在其中就会是特定的写入/阅读/任何视图(/控制器)。

希望对你有帮助!

【讨论】:

    【解决方案2】:

    一种方法可能是创建一个包含所有 Interface Builder 连接的视图控制器,然后对该视图控制器进行多次子类化。在代码中,您可以使用 -initWithNibName:bundle: 的相同 nib 来实例化所有子类。

    或者,您的视图控制器可以有一种“模式”值,它根据它应该处于的状态确定其行为。然后呈现它的视图控制器将负责适当地设置它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多