一个UITableView - 多个数据源,最佳设计模式?

时间:2009-01-06 18:46:03

标签: iphone cocoa-touch oop cocoa-design-patterns

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

使用UISegmentControl显示具有相同接口但具有不同数据源的两个视图时,同样的问题也是相关的。

1 个答案:

答案 0 :(得分:12)

请注意您的术语。 UITableView有一个叫dataSource的东西,但你似乎主要是指两组不同的数据。

在你建议的情况下,在表dataSource(符合UITableViewDataSource协议的对象)中,我有三个数组。

  • currentlyViewedArray
  • datasetOneArray
  • datasetTwoArray

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

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

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

您可以使用UISegmentedControl在两个阵列之间切换。