使用Swift中的数据取消隐藏UITextFields

T. *_*gan 2 swift3

我正在尝试构建一个应用程序,我可以为每台机器输入各种作业.在视图加载时,我总共隐藏了9个UITextField.我有一个添加作业按钮,可以取消隐藏字段以输入文本.我还有一个保存按钮,可以将数据保存到UserDefaults.我的问题是我保存数据并退出应用程序.当视图加载时,UITextFields再次被隐藏.我可以按添加作业按钮,它会与保存的数据一起显示.我想要的是,如果在退出应用程序之前有文本,UITextField仍然可见.我似乎无法弄清楚如何实现这一目标.我对编程非常陌生,非常感谢您提供的任何帮助.

     var addJobButtonPressed = 0
     let defaults = UserDefaults.standard


     @IBOutlet weak var textField1: UITextField!
     @IBOutlet weak var textField2: UITextField!
     @IBOutlet weak var textField3: UITextField!
     @IBOutlet weak var textField4: UITextField!
     @IBOutlet weak var textField5: UITextField!
     @IBOutlet weak var textField6: UITextField!
     @IBOutlet weak var textField7: UITextField!
     @IBOutlet weak var textField8: UITextField!
     @IBOutlet weak var textField9: UITextField!

       override func viewDidLoad() {
         super.viewDidLoad()
         textField1.isHidden = true
         textField2.isHidden = true
         textField3.isHidden = true
         textField4.isHidden = true
         textField5.isHidden = true
         textField6.isHidden = true
         textField7.isHidden = true
         textField8.isHidden = true
         textField9.isHidden = true

         textField1.text = defaults.object(forKey: "Job1") as? String
         textField2.text = defaults.object(forKey: "Job2") as? String

      }

     @IBAction func addJobButtonPressed(_ sender: Any) {
           addJobButtonPressed += 1
           if addJobButtonPressed == 1 {
           self.textField1.isHidden = false
       }
    }


     @IBAction func saveButton(_ sender: Any) {
           defaults.set(textField1.text, forKey: "Job1")
           defaults.set(textField2.text, forKey: "Job2")
           defaults.synchronize()

       }
Run Code Online (Sandbox Code Playgroud)

Ami*_*han 9

替换 viewDidLoad() 为此方法:

override func viewDidLoad() {
    super.viewDidLoad()

    updateTextFieldsVisibility()


}
Run Code Online (Sandbox Code Playgroud)

添加以下两种方法:

func updateTextFieldsVisibility(){

    updateTextFieldText(textField: textField1, key: "Job1")
    updateTextFieldText(textField: textField2, key: "Job2")
    updateTextFieldText(textField: textField3, key: "Job3")
    updateTextFieldText(textField: textField4, key: "Job4")
    updateTextFieldText(textField: textField5, key: "Job5")
    updateTextFieldText(textField: textField6, key: "Job6")
    updateTextFieldText(textField: textField7, key: "Job7")
    updateTextFieldText(textField: textField8, key: "Job8")
    updateTextFieldText(textField: textField9, key: "Job9")

}


func updateTextFieldText(textField: UITextField, key: String){

    if defaults.object(forKey: key) != nil {

        textField.isHidden = false
        textField.text = defaults.object(forKey: key) as? String

    }
    else{

        textField.isHidden = true
    }

}
Run Code Online (Sandbox Code Playgroud)

虽然它可以通过viewWithTag财产来完成,IBOutletArray但是这个简单的步骤可以让您了解您在寻找什么.

快乐的编码.