如何保存uitextfield以使文本保持从视图控制器到视图控制器

问题描述 投票:4回答:2

我的文本现在将文本字段保存在uiviewcontroller中,但是当转到上一个视图控制器而不是返回到原始视图控制器时,文本将被删除。如何保存文本,以便在输入和保存文本时文本保持不变。

import UIKit

class tryingViewController: UIViewController {

    @IBOutlet weak var textext: UITextField!

    @IBAction func actionaction(_ sender: Any) {
        textext.resignFirstResponder()
        let myText = textext.text
        UserDefaults.standard.set(myText, forKey: "myKey")
    }
}
ios swift save uitextfield swift3
2个回答
3
投票

您可以使用几种选项。

  1. 使用CoreData
  2. 将文本保存在主视图控制器中
  3. 存储在UserDefaults

看到你已经在使用UserDefaults,我会坚持下去并展示一个例子:

@IBOutlet weak var textField: UITextField!

let standardText = "standardText"

override func viewDidLoad() {
    super.viewDidLoad()

    textField.addTarget(self, action: #selector(textDidChange), for: .editingChanged)
    textField.text = UserDefaults.standard.value(forKey: standardText) as? String
}

func textDidChange(sender: UITextField) {
    UserDefaults.standard.set(sender.text ?? "", forKey: standardText)
}

-1
投票

您正在设置默认值,但您没有读回它:

if let string = UserDefaults.standard.object(forKey: "myKey") as? String {
     textext.text = string
}

或者如指出的那样,因为textfields文本是可选的:

textext.text = UserDefaults.standard.object(forKey: "myKey") as? String
© www.soinside.com 2019 - 2024. All rights reserved.