0

這是一個比問題更重要的要求。 有一個標籤欄控制器,在標籤欄控制器的其中一個控制器中有一個導航控制器。在它下面有一個段控件,我必須在表格視圖中顯示一些數據(我將通過URL連接)。在從段控制改變段時,表的內容將改變。段控件改變了表中顯示的數據類型,甚至UITableViewCells也不同。所有三個分段都會在表格中顯示數據。標籤欄,導航欄和分段控件的設計問題

This is how design will be

一種可能的解決方案是改變數據,並且當該段被改變重新加載該表。 其他解決方案是更改視圖(將有三個不同的視圖控制器)更改段,這些視圖控制器將實現自己的表代表,並將有獨立的表視圖。

我想第一個效率更高。第二個將保持不同部分的一切(代碼)分離。雖然存在一些問題,但導航控制器在內部視圖控制器中無法訪問。

任何人都可以建議我最好的解決方案嗎? 謝謝你。

+1

如果您在代理單例中保留對引用的控制權,則可以訪問內部VC中的導航控制器。我做了一些非常相似的事情(選擇2,每個表單獨使用不同的VC),看起來很糟糕,我認爲最好的辦法是使用不同的數據源來處理每個表格,但單獨的控制器工作正常。 – 2011-06-08 16:57:04

+0

切換數據源可能是最好的選擇。切換視圖控制器可以是非常麻煩的應用程序相比效率去 – justin 2011-06-08 17:04:30

+0

是的,我更喜歡第二個選項,但問題是我彈出使用外部導航控制器後,我沒有調用viewWillAppear在內部VC。你能否詳細說明一下使用不同的數據源。 – sole007 2011-06-08 17:06:42

回答

0

我深入瞭解了這一點,並最終大膽改變了單個TableView的數據源。我只有兩個段,單元格類型,fetchedResultsControllers等,它仍然是一個非常沉重的自定義TableViewController。延遲加載圖像,如果你需要這樣做,也有點痛苦。

我不需要在各個表格視圖的導航控制器上有一個句柄,但如果這對你很重要,那麼第二種方法可能是最好的。儘管如此,第一種方法很好地解決了這個問題。有興趣聽到任何更好的模式。