当我导航到启动画面然后再返回时,文本字段数据正在消失。它嵌入在导航控制器中。
class LogInViewController: UIViewController, UITextFieldDelegate, UIAlertViewDelegate, PFLogInViewControllerDelegate {
@IBOutlet weak var emailTextField: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
self.emailTextField.delegate = self
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
}
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.navigationBar.hidden = false
}
func textFieldShouldReturn(textField: UITextField!) -> Bool {
self.view.endEditing(true)
return false
}
一旦我从启动画面导航回登录页面,我希望重新显示emailTextField
字段的输入文本。 UBSutton通过push segue将启动画面发送回登录页面,推送segue清除之前输入的任何文本。
我需要将输入的文本保存为对象,然后在从初始屏幕导航到登录页面后再次加载它。
我该怎么做?
答案 0 :(得分:2)
在导航回到它之前,您需要将文本(或对象)传递到初始屏幕的视图控制器,然后将其传递给prepareForSegue
函数中的登录视图控制器。 / p>
要做到这一点:
如果您从推送视图中展开启动屏幕,这是我发现保存数据的最简单方法:Passing Data in Swift
如果您从模拟显示的视图中展开到初始屏幕,则应创建一个展开论坛:What are Unwind segues for and how do you use them?
但这是一个临时解决方案,因为文本不会保存到用户的设备中,因此重新启动应用程序将删除文本。如果要将数据保存到设备,最终需要使用Core Data or SQLite;对于不太临时的解决方案,最后需要this。 This是一个很好的Core Data教程。