Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 一个UITableView-多个数据源,最佳设计模式?_Iphone_Cocoa Touch_Oop_Cocoa Design Patterns - Fatal编程技术网

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

Iphone 一个UITableView-多个数据源,最佳设计模式?,iphone,cocoa-touch,oop,cocoa-design-patterns,Iphone,Cocoa Touch,Oop,Cocoa Design Patterns,这似乎是一个典型的问题,但我有一个UITableView,它对两个独立的数据源具有相同的行为。设计类层次结构以减少重复和if/else条件的最佳方法是什么?视图控制器将对这两个数据源执行完全相同的操作,它们在数据集中是唯一的。我是否应该让父控制器只设置其数据源/各自的标题 当使用UISegmentControl显示具有相同界面但数据源不同的两个视图时,同样的问题也会出现。请注意此处的术语。UITableView有一个称为数据源的东西,但实际上,您似乎指的是两组不同的数据 在您建议的情况下,在表的

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


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

请注意此处的术语。UITableView有一个称为
数据源的东西,但实际上,您似乎指的是两组不同的数据

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

  • 当前视图阵列
  • 数据近地射线
  • 数据集数组
在dataSource方法中,使用currentlyViewedArray作为表的数据源

然后,将currentlyViewedArray设置为要查看的任意阵列:

self.currentlyViewedArray = self.datasetOneArray;
[theTableView reloadData];
您可以使用UISegmentedControl在两个阵列之间切换