这似乎是一个典型问题,但我有一个UITableView,它对两个独立的数据源具有相同的行为。设计类层次结构以获得尽可能少的重复和if / else条件的最佳方法是什么?视图控制器将对两个数据源执行相同的操作,它们在数据集中只是唯一的。我应该让父控制器只设置其数据源/相应的标题吗?
使用UISegmentControl显示具有相同接口但具有不同数据源的两个视图时,同样的问题也是相关的。
答案 0 :(得分:12)
请注意您的术语。 UITableView有一个叫dataSource
的东西,但你似乎主要是指两组不同的数据。
在你建议的情况下,在表dataSource
(符合UITableViewDataSource协议的对象)中,我有三个数组。
在dataSource方法中,使用currentViewedArray作为表数据的来源。
然后,将currentViewedArray设置为您要查看的数组:
self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];
您可以使用UISegmentedControl在两个阵列之间切换。