2013-10-15 35 views
0

我有一個鍛鍊應用程序和一個模型,其中包含所有練習的所有數據。現在我正在使用一個單例來訪問該TableView的每個Child VC中的模型。我遇到問題,我想刪除單身人士。如何保持模型在整個應用程序更新

現在我將如何保持整個應用程序更新的模型,並從任何地方的應用程序內訪問它?單身人士很容易。我認爲我需要將模型從「兒童VC」傳回給「父」,因此,父母可以在選擇下一個練習時將它傳遞給下一個「兒童VC」。

+2

您可以擴展「遇到問題」嗎?什麼樣的問題? – danielbeard

+0

我不能得到國家保存和恢復與單身人士正常工作 –

回答

0

我還沒有使用狀態保存&恢復,所以我不知道它與你的模型是一個單身人士有什麼問題(如果你詳細說明這個問題,我可能有一些想法來幫助),但我發現在數據模型簡單的應用程序中,就像您所指出的那樣,單例通常更容易。這就是說,如果它不是一個選項,你會想要pass the model object between controllers。基本上在每個控制器上放置一個屬性,然後在您的segues中將該對象傳遞給目標控制器。

當您將控制器關閉導航堆棧時,您還需要更新視圖,以防萬一有任何數據更改。如果您正在使用故事板並且有少量場景(故事板中的單個「屏幕」),則連接Unwind segue非常簡單,它調用父控制器上的某個方法來通知孩子正在彈出堆棧 - 這是您將該對象從孩子身上取下,將其存儲在父控制器中並刷新其視圖的位置。

在iOS應用中有several ways to persist data。我的最愛是Core Data和序列化。如果您的模型非常簡單(一個或兩個對象實例以及每個對象上的一些屬性),則序列化非常簡單 - 使用NSCoding在您的應用程序數據目錄中編碼/解碼您的對象和save that data to a file。如果你的模型更加複雜(比如在對象之間有關係,或者有大量的對象實例),Core Data是一個很好的方法。它管理內存中的對象「圖形」並處理將其保存到磁盤;如果您需要在未來發展您的模型,它甚至可以處理升級您的持久存儲。它非常強大,但有一點學習曲線。

+0

感謝這也是我第一次與國家保存和恢復,它混淆了我的地獄。我知道如何將對象傳遞給目標VC,但是如何將其傳遞迴父對象,以便在移動到下一個子對象時使用新數據? –

+0

Btw您是否使用其他方法來記住啓動之間的應用程序狀態和數據? –

+0

我更新了我的答案,詳細闡述瞭如何使用故事板中的展開順序。如果你不使用故事板,編輯你的問題來詳細說明你如何處理導航,我可以給你一個定製的答案。 – RyanR

相關問題