保存 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 =
}
我有一个程序,用户将在一个视图控制器中输入数据,然后在另一个视图控制器中计算信息。我已经到了可以输入数据的地步,当我转到 SecondViewController 时,我可以访问我的数据。但是当我切换回第一个 ViewController 时,UITextFields 是空白的,因为 ViewController 被重新实例化了。
到目前为止,基本上我的应用程序有一个 ViewController 带有两个 UITextfields 和一个显示数据的第二个 ViewController。当我在两者之间切换时,我需要一种方法来保存第一个 ViewController 的实例。
我试过使用
这是我从第一个 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 =
}