导航到不同的屏幕并返回时,文本字段数据消失

时间:2015-04-09 15:16:25

标签: ios swift

当我导航到启动画面然后再返回时,文本字段数据正在消失。它嵌入在导航控制器中。

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清除之前输入的任何文本。

我需要将输入的文本保存为对象,然后在从初始屏幕导航到登录页面后再次加载它。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

在导航回到它之前,您需要将文本(或对象)传递到初始屏幕的视图控制器,然后将其传递给prepareForSegue函数中的登录视图控制器。 / p>

要做到这一点:

  1. 如果您从推送视图中展开启动屏幕,这是我发现保存数据的最简单方法:Passing Data in Swift

  2. 如果您从模拟显示的视图中展开到初始屏幕,则应创建一个展开论坛:What are Unwind segues for and how do you use them?

  3. 但这是一个临时解决方案,因为文本不会保存到用户的设备中,因此重新启动应用程序将删除文本。如果要将数据保存到设备,最终需要使用Core Data or SQLite;对于不太临时的解决方案,最后需要thisThis是一个很好的Core Data教程。