我有一个程序,用户将在一个视图控制器中输入数据,并在另一个视图控制器中计算信息。我已经达到了可以输入数据的程度,当我转到SecondViewController时,我可以访问我的数据。但是当我切换回第一个ViewController时,UITextFields是空白的,因为ViewController被重新实例化。
基本上我的应用程序到目前为止有一个带有两个UITextfields的ViewController和一个显示数据的SecondViewController。当我在两者之间切换时,我需要一种方法来保存第一个ViewController的实例。
我已尝试使用iOS Swift, returning to the same instance of a view controller的答案,但你的变量无法设置为零,所以我被困在那里。
这是我从第一个ViewController到SecondViewController
的代码override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
if (segue.identifier == "Show")
{
var destinationVC = segue.destinationViewController as! MainViewController
}
}
我只有一个按钮,我按下该按钮返回第一个ViewController。
答案 0 :(得分:1)
您可以创建一个类来存储您的文本文件,在appdelegate中创建它的实例(在全局范围内),并使用observer将文本数据提供给文本字段。如果您的应用程序不像您描述的那么简单,那么类的全局实例可能不是最佳选择,在这种情况下,您可以使用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 =
}