保存 ViewController 的实例

Saving an instance of a ViewController

我有一个程序,用户将在一个视图控制器中输入数据,然后在另一个视图控制器中计算信息。我已经到了可以输入数据的地步,当我转到 SecondViewController 时,我可以访问我的数据。但是当我切换回第一个 ViewController 时,UITextFields 是空白的,因为 ViewController 被重新实例化了。

到目前为止,基本上我的应用程序有一个 ViewController 带有两个 UITextfields 和一个显示数据的第二个 ViewController。当我在两者之间切换时,我需要一种方法来保存第一个 ViewController 的实例。

我试过使用 的答案,但是 yourVariable 不能设置为 nil,所以我卡在那里了。

这是我从第一个 ViewController 到第二个 ViewController

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

我只有一个按钮可以返回到第一个 ViewController。

您可以创建一个 class 来存储您的文本文件,在 appdelegate 中创建它的实例(在全局范围内)并使用观察者将您的文本数据发送到文本字段。如果您的应用不像您描述的那么简单,那么 class 的全局实例可能不是最佳选择,在这种情况下,您可以使用 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 = 
}