2013-12-13 30 views
4

什麼基本上,我想,是落實控制段/ tableview中作爲郵箱(見它2:00左右:http://www.youtube.com/watch?v=FG-h8pDXfoE&feature=youtu.be&t=2m分段控制通過多個tableviews切換

我在一個UITableViewController使用核心數據迷上了UITableView

當用戶切換的UISegmentedControl,該TableView重新加載一組不同的NSPredicate,和UITableViewRowAnimationRight/Left,那種使它看起來是在不同的表視圖的幻燈片,並取代舊的。

隨着單元數量的增加,這種設計的性能顯着下降,並且它看起來也會好得多。

我可以看到的繞了幾個不同的方式,但我想我會問你們一些指針攔住了我的方向是正確的:

什麼是有一個分段的最佳方式控制切換到多個tableviews?這些tableviews應該連接到相同的數據源/代表嗎?

回答

2

這實際上取決於這些表格視圖的不同。如果它們非常相似,那麼分享代表數據源並且有一些條件代碼可能是最容易的。

事實上,您可以只有一個表格視圖,但根據您當前的上下文具有不同的單元格/配置。作爲具有加入一些條件

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath; 

另一種方法將是使用視圖控制器遏制 可能是一樣簡單。您將爲每個創建一個UITableViewController,然後使用分段控制的父視圖控制器相應地交換子視圖控制器。

至於動畫和表演,我看不出任何問題。如果您使用NSFetchedResultsController,您可以毫不費力地獲得動畫,請參閱此處的示例:https://developer.apple.com/library/ios/documentation/CoreData/Reference/NSFetchedResultsControllerDelegate_Protocol/Reference/Reference.html

+0

這些tableviews將顯示相同的項目,只是在不同的「狀態」 - 基本上就像一個簡單的待辦事項列表,其中分段控件將在要完成或未完成的待辦事項之間切換。 現在我確實已經設置了一個委託和數據源,但是當各種列表中有很多項目時,動畫確實會稍微起伏不定。 – user2336702

+0

然後我會選擇第一種方法。根據當前上下文配置您的單元。 – kkodev

+0

這是我現在實際設置的。唯一的一點是性能下降,而且動畫並沒有真正說明段到段的感覺(如在郵箱中)。我在細胞上使用滑動手勢,所以這很重要。我剩下的View Controller Containment呢? – user2336702

0

請參閱SBSegmentedViewController。我爲了你想要做的事情而寫了它。

+0

我會如何做動畫? (http://www.youtube.com/watch?v=FG-h8pDXfoE&feature=youtu.be&t=2m) – user2336702

+0

另外,我應該爲所有表使用一個數據源/代理嗎?我正在使用核心數據和NSFetchedResultsController。 – user2336702

+0

它目前不會做動畫,但這不難添加。你將有兩個完全獨立的表格視圖控制器,如果他們需要的話,它們可以自己站立。所以單獨的委託和單獨的'NSFetchedResultsController'實例。 –