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

use*_*138 5 oop iphone cocoa-touch cocoa-design-patterns

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

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

Aug*_*ust 12

这里要小心你的术语.UITableView有一个叫做a的东西,dataSource但你似乎主要是指两组不同的数据.

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

  • currentlyViewedArray
  • datasetOneArray
  • datasetTwoArray

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

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

self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];
Run Code Online (Sandbox Code Playgroud)

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