如何保存uitextfield以使文本保持从视图控制器到视图控制器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保存uitextfield以使文本保持从视图控制器到视图控制器相关的知识,希望对你有一定的参考价值。
我的文本现在将文本字段保存在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")
}
}
答案
您可以使用几种选项。
- 使用CoreData
- 将文本保存在主视图控制器中
- 存储在
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)
}
另一答案
您正在设置默认值,但您没有读回它:
if let string = UserDefaults.standard.object(forKey: "myKey") as? String {
textext.text = string
}
或者如指出的那样,因为textfields文本是可选的:
textext.text = UserDefaults.standard.object(forKey: "myKey") as? String
以上是关于如何保存uitextfield以使文本保持从视图控制器到视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
UITextField 在我开始输入时保持/保存值,而无需我点击“完成/保存”按钮
从具有相同属性名称的多个 UITextField 中保存文本