2014-09-29 79 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

相關問題