2012-03-13 51 views
4

我目前在一個有多個視圖,30多個ViewControllers的應用程序中工作。我正在使用故事板將視圖流連接在一起。保持一個ViewController在相同的狀態/保持它在後臺加載?

,這樣,當用戶從一個視圖控制器導航離開我想它,當他們回來這種看法是留在同一個狀態,用戶已經進入了同樣的變化。 (成UITextFeild,的UILabel,UITextView的等)

我,因爲我有這麼多的意見,將是理想的沒有對信息存儲在全局變量或:提前

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

謝謝, 問候

回答

2

有大量的數據存儲方式;全局變量和默認系統通常不是最好的選擇。這聽起來像你應該考慮爲你的應用程序開發一個真正的數據模型。模型是MVC中的M,它本質上是一個或多個對象,用於存儲數據並管理應用程序的「業務邏輯」。

你的模型可能是作爲一個可變的字典一樣簡單,也可能是相互關聯的對象的複雜的圖形。我不會在這裏解釋所有的MVC - 如果你不熟悉這個想法,你可以(應該)閱讀它。但是可以創建一個模型來保存每個視圖控制器的狀態,並且當給定的控制器變爲活動狀態時,它可以設置其視圖層次結構以匹配保存的狀態。

+0

的提醒真棒感謝,你將有一個很好的文章,以瞭解這個MVC的東西? - 謝謝一堆。 – 2012-03-13 03:59:37

+0

您需要閱讀[Objective-C Programming *中的概念](https://developer.apple.com/library/ios/#documentation/General/Conceptual/CocoaEncyclopedia/Introduction/Introduction.html)。你應該熟悉了整個事情,但MVC的部分是[*模型 - 視圖 - 控制器*](https://developer.apple.com/library/ios/#documentation/General/Conceptual/CocoaEncyclopedia/Model-視圖 - 控制器/模型 - 視圖 - Controller.html) – Caleb 2012-03-13 04:05:19

1

基本上你需要實現像堆棧,同時調用你推入堆棧保存任何狀態的viewController是&從棧中彈出會帶來最後的另一個的viewController推的viewController(&其狀態)查看。

幸運的是這樣的事情已經在iOS版 - UINavigationViewController。它提供了這樣的方法,如 -

​​

This tutorial會告訴你如何實現這在您的項目。因此,而不是通過故事板連接viewControllers的,我建議你捲起你的袖子&實現這一切的代碼。希望這可以幫助。

+0

多虧了你,我就對藏漢讀了。 – 2012-03-13 04:07:08

+1

請勿將管理視圖控制器與管理數據混淆。具有30個視圖控制器的應用程序應該有一個可擴展到導航堆棧之外的可靠數據管理系統。 – Caleb 2012-03-13 04:11:11

+0

[quote]他們回到那個視圖,它留在與用戶輸入相同的變化(UITextFeild,UILabel,UITextView)相同的狀態。[/ quote] – 2012-03-13 04:28:04

相關問題