4

例如,如果我需要 aUITableView出现在视图中的其他内容下方,最好的做法是:

  • 添加 aUITableView作为子视图,或
  • 添加一个容器视图,其中包含UITableViewController?

据我所知,两者都会提供相同的用户体验,但是我很想知道哪种方法被认为是最佳实践?

4

3 回答 3

6

你有几个选择:

  1. 添加一个UITableView并使包含视图控制器成为表视图的数据源和委托。
  2. 添加一个UITableView并使其他一些类成为表视图的数据源和委托。
  3. 使用表创建一个单独的视图控制器,然后将第二个视图控制器添加为第一个的子视图控制器。

选择取决于适当的责任划分和封装。

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

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

于 2013-08-26T16:29:50.047 回答
3

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

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

于 2013-08-26T16:28:57.767 回答
1

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

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

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

于 2013-08-26T16:32:58.753 回答