5

这似乎是一个典型的问题,但我有一个 UITableView 对两个单独的数据源具有相同的行为。设计类层次结构以减少重复和 if/else 条件的最佳方法是什么?视图控制器将对两个数据源做同样的事情,它们只是在它们的数据集中是唯一的。我应该让父控制器设置其数据源/相应的标题吗?

当使用 UISegmentControl 显示具有相同界面但数据源不同的两个视图时,同样的问题也很重要。

4

1 回答 1

12

请注意这里的术语。UITableView 有一个叫做 a 的东西,dataSource但你似乎本质上指的是两组不同的数据。

在您建议的情况下,在表dataSource(遵守 UITableViewDataSource 协议的对象)中,我将有三个数组。

  • 当前查看数组
  • 数据集OneArray
  • 数据集TwoArray

在 dataSource 方法中,使用 currentViewedArray 作为表数据的来源。

然后,将 currentViewedArray 设置为您要查看的任何数组:

self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];

您可以使用 UISegmentedControl 在两个数组之间切换。

于 2009-01-06T19:05:31.830 回答