首页 > 解决方案 > 当我尝试从 UITextField 获取值时,它返回以前的值而不是当前值。#迅速

问题描述

我有一个 viewController,它包含一个 textField 和一个按钮。每次我按下按钮时,都会出现不同的图像,并且用户必须在 textField 中写入图像的标题(从数据库中检索的图像)。问题是当我尝试保存字段的文本值时,它给了我用户输入的前一个值而不是当前值。任何人都可以帮忙,拜托。谢谢


@IBOutlet weak var field: UITextField!
@IBOutlet weak var submit: UIButton!

public func  pr (ind: Int) {

    let  ref = Database.database().reference()
    let doc = db.collection("users").document(organized.uid)
    if ind < list.count {
        var color1 = hexStringToUIColor(hex: list[ind])
        textview.backgroundColor = color1
        textview.isEditable = false
        let  userResponse = self.field.text

        var idd = "\(organized.ind)"
        let number = Int.random(in: 0 ... 1000000)
        let v = "userResponse\(number)"

        ref.child(idd).child("values").child(v).setValue(userResponse)
        organized.ind += 1 //new place

        //increment  index  by 1 in  the  database
        doc.updateData(["index": FieldValue.increment(Int64(1))])                            
    }
    else {
        print("congrats all colours")
    }
    return
}
        

标签: swiftuitextfield

解决方案


尝试使用以下解决方案,您将在其中收到有关文本字段值更改的事件。

textfield.addTarget(self, action: 
#selector(ViewController.textFieldDidChange(_:)), for: .editingChanged)



@objc func textFieldDidChange(_ textField: UITextField) {
    //print(textField.text) 
}

推荐阅读