嵌入视图控制器或添加子视图更好吗?

时间:2013-08-26 16:20:32

标签: ios cocoa-touch

例如,如果我要求UITableView显示在视图中的其他内容下方,那么最佳做法是:

  • 添加UITableView作为子视图,或
  • 添加一个包含UITableViewController
  • 的容器视图

据我所知,两者都会提供相同的用户体验,但我有兴趣知道哪种方法被认为是最佳做法?

3 个答案:

答案 0 :(得分:6)

您有几种选择:

  1. 添加UITableView并使包含视图控制器成为表视图的数据源和委托。
  2. 添加UITableView并将其他类设为表视图的数据源和委托。
  3. 使用表格创建单独的视图控制器,然后将第2个视图控制器添加为第1个子视图控制器。
  4. 选择取决于适当的责任分工和封装。

    选项2&如果您需要在多个视图控制器中嵌入表视图,则允许重用。

    您的问题没有简单的答案。这完全取决于您的需求,数据和应用程序的结构。

答案 1 :(得分:3)

iOS的一般规则,尤其是iPhone / iPod touch外形规格,是在任何给定时间屏幕上应该只有一个视图控制器。当你想要违反该指南时,我能想到的唯一情况是你有一个内置了很多逻辑的子视图,并且子视图需要包含在多个其他视图中。例如,popover应该有自己的视图控制器,因为它可能需要与多个其他视图控制器一起显示。

在你的情况下,我强烈建议只添加UITableView作为子视图,除非(1)表视图有很多逻辑与父视图控制器的逻辑无关,或者(2)你需要在应用的另一部分显示相同的表格视图。

答案 2 :(得分:1)

我宁愿使用容器视图控制器,原因如下:

  • 它可以在应用程序的另一部分中重用。
  • 保持对象的单一责任(主视图控制器侧重于显示有关模型的信息,表视图控制器处理显示模型中关系的信息,例如)。
  • 保持源文件更小,更易于阅读。
  • 更容易构建测试。

最终,它们都是有效的解决方案。