關於將數據從視圖控制器傳遞到相鄰的視圖控制器,存在許多類似的問題。將模型對象通過不需要的視圖控制器傳遞給視圖控制器
但是,我一直沒能找到任何解決方案,在一個視圖控制器中使用和初始化模型對象的情況下,然後有一個segue到另一個視圖控制器,不使用模型對象,然後另一個segue需要發生在需要使用模型對象的視圖控制器上。如何從中間視圖控制器中隱藏模型對象並將其暴露給最後一個視圖控制器?
關於將數據從視圖控制器傳遞到相鄰的視圖控制器,存在許多類似的問題。將模型對象通過不需要的視圖控制器傳遞給視圖控制器
但是,我一直沒能找到任何解決方案,在一個視圖控制器中使用和初始化模型對象的情況下,然後有一個segue到另一個視圖控制器,不使用模型對象,然後另一個segue需要發生在需要使用模型對象的視圖控制器上。如何從中間視圖控制器中隱藏模型對象並將其暴露給最後一個視圖控制器?
您可以在應用程序委託中創建模型類的singleton instance,然後通過AppDelegate.h僅在實際需要訪問該模型的VC中引用它。 Another reference。
你有幾種選擇。
我想避免全局可訪問的引用,如單例模式。我在考慮一種解決方案是有一些類似導航的控制器類,它可以包含對所有模型的引用,並且在轉換到新的視圖控制器時,會將模型傳遞給需要它的視圖控制器 - 更多的是分層模擬參考傳遞的方法。 第一種方法也不可取,因爲它仍然不限制對模型的訪問 – 2014-09-23 19:57:13
對jlukanta的迴應有同樣的反應:我想避免全局可訪問的引用,如單例模式。我在考慮一種解決方案是有一些類似導航的控制器類,它可以包含對所有模型的引用,並且在轉換到新的視圖控制器時,會將模型傳遞給需要它的視圖控制器 - 更多的是分層模擬參考傳遞的方法。 – 2014-09-23 19:57:57
@corporate_fun:我認爲你只是回答了你自己的問題,但是一個只保存模型引用的單獨控制器類與將這些單例引用放在AppDelegate中幾乎是一樣的。您仍然必須實例化類和模型引用,並且仍然必須將該類'.h導入需要它的VC。另外,你會將模型引用封裝在一個單獨的位置,所以它不會膨脹AppDelegate。就方法而言,這仍然是基本相同的解決方案。事實上,你剛纔描述jlukanta的選項#1 ... – mc01 2014-09-23 20:03:34
我想知道是否有一種方法來獲取回調每次有視圖控制器之間的轉換,以便可以通知對象時,一個新的視圖控制器顯示出來以便視圖控制器可以用模型實例化,而不是讓視圖控制器訪問對象來獲得模型。 – 2014-09-23 20:08:16