Ios 如何使用两个数据源创建一个UITableView

Ios 如何使用两个数据源创建一个UITableView,ios,uitableview,datasource,Ios,Uitableview,Datasource,我有一个UIViewController和一个UITableView。但是tableView有两个数据源。基本上,UIButton将决定哪个数据源处于活动状态。我该怎么做?没有像这样的方法 [self.tableView reloadData:myDataSourceArray]; 这将大大有助于区分要使用的数据源和要使用的UITableViewCell扩展。那么我该怎么做呢 我说按钮是为了保持简单,但实际上,dataSource_1是从服务器预加载的,而dataSource_2是通过UIS

我有一个UIViewController和一个UITableView。但是tableView有两个数据源。基本上,UIButton将决定哪个数据源处于活动状态。我该怎么做?没有像这样的方法

 [self.tableView reloadData:myDataSourceArray];
这将大大有助于区分要使用的数据源和要使用的UITableViewCell扩展。那么我该怎么做呢


我说按钮是为了保持简单,但实际上,dataSource_1是从服务器预加载的,而dataSource_2是通过UISearchBar加载的。

创建一个可变数组怎么样,比如说,
objectsToDisplayArray
,然后单击按钮,分配您想要的源,然后调用
reloadData
。如果要更改源,只需从objectsToDisplayArray中删除所有对象,添加新数据,然后重新加载。

您应该使用BOOL跟踪哪个数据源处于活动状态。这是必要的,因为您还使用两个不同的UITableViewCell扩展类。说

BOOL dataSourceOneIsActive;
当您在索引路径中执行
cellForRowAtIndexPath
numberofrowInSection
时,您可以检查

if(dataSourceOneIsActive)
确定要使用的计数、单元格和数据源


另一方面,如果您使用NSMutableArray的想法,那么当需要决定使用哪种单元格类型时,您的工作就会被削减。

就这样做吧。在委托/数据源内部,检查一个bool值,该值决定使用哪个数组。切换时,请务必重新加载数据。或者将指针设置为一个或另一个,同样,在更改指针时也会重新加载数据。更有效的方法是只使用一个引用活动数组的属性并根据需要分配它-没有理由继续重建ArrayEah,在来回切换时不断地重新加载可变数组有点疯狂。您应该以某种方式在两个数组之间进行选择。