2015-06-25 106 views
3

我有一個程序,其中用戶將在一個視圖控制器中輸入數據,並在另一個視圖控制器中計算信息。我已經到了可以輸入數據的地步,當我繼續到SecondViewController時,我可以訪問我的數據。但是當我切換回第一個ViewController時,UITextFields是空的,因爲ViewController被重新實例化。保存一個ViewController的實例

基本上我的應用程序到目前爲止有一個ViewController有兩個UITextfields和一個顯示數據的SecondViewController。當我在兩者之間切換時,我需要一種方法來保存第一個ViewController的實例。

我試過使用iOS Swift, returning to the same instance of a view controller的答案,但yourVariable不能設置爲零,所以我卡在那裏。

這是我SEGUE-ING從第一視圖控制器代碼到SecondViewController

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    { 
    if (segue.identifier == "Show") 
    { 
     var destinationVC = segue.destinationViewController as! MainViewController 
    } 
    } 

我只有一個按鈕,我按回到第一的ViewController。

+0

你可以發佈你的按鈕代碼轉換回前一個視圖控制器嗎?另外,你說過你在另一個例子中嘗試了代碼,你確定要設置第二個視圖控制器的標識符嗎? – jzarob

回答

1

您可以創建一個類來存儲您的文本文件,在appdelegate(在全局範圍內)中創建它的實例,並使用觀察者將文本數據提供給文本字段。如果您的應用程序不像您描述的那樣簡單,那麼您可以使用NSUsersDefault將其保存爲plist,但類的全局實例可能不是最佳選擇。我希望我幫助:)

//in first view controller 
@IBOutlet weak var textfield: UITextField!{ 
    didSet{ 
     textfield.text = text 
    } 
} 
var text:String = ""{ 
    didSet{ 
     textfield?.text = text 
    } 
} 
func override viewWillAppear(animated: Bool) { 
    //set value of text from your global class instance or 
    //decode it here from the archive file if you used NSUsersDefault 
    text = 
} 
+0

感謝盧卡斯,我最終推薦使用NSUsersDefault! –

+0

我很高興我幫助:) – Lukas

相關問題