2014-09-29 35 views
1

我有一个具有一个UITableView的UIViewController。但是那个tableView有两个数据源。基本上UIButton会决定哪个数据源是活动的。我该怎么做?有作为如何创建一个具有两个数据源的UITableView

[self.tableView reloadData:myDataSourceArray]; 

没有这样的方法,这将有助于大量向辨别哪些数据源使用和扩展的UITableViewCell使用。那么我该怎么去做呢?

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

+0

只要做到这一点。在你的委托/数据源里面检查一个决定使用哪个数组的布尔值。切换时执行'reloadData'。或者有一个设置为一个或另一个的指针,并且在更改指针时同样执行'reloadData'。 – 2014-09-29 02:01:10

回答

0

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

BOOL dataSourceOneIsActive; 

当你做cellForRowAtIndexPathnumberOfRowsInSection您可以检查

if(dataSourceOneIsActive) 

,以确定哪些计数和细胞和数据源要使用的。另一方面,如果你使用NSMutableArray思想,那么当你决定使用哪种单元类型时,你将会为你裁剪你的工作。

2

如何创建一个可变数组,例如objectsToDisplayArray,然后点击按钮,指定您想要的源,然后调用reloadData。如果您想更改源代码,只需从objectsToDisplayArray中删除所有对象,添加新数据,然后重新加载。

+0

简单地拥有一个指向活动数组的单个属性并根据需要分配它会更高效 - 没有理由继续重建数组 – Paulw11 2014-09-29 02:06:05

+0

我忘了说谢谢。 +1。谢谢。 – 2014-09-29 05:19:25

+0

是的,当你来回切换时不断地重新加载可变数组有点疯狂。你应该以某种方式选择两个数组。 – 2014-09-29 16:06:19

相关问题