swift - 当我尝试从 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
}
解决方案
尝试使用以下解决方案,您将在其中收到有关文本字段值更改的事件。
textfield.addTarget(self, action:
#selector(ViewController.textFieldDidChange(_:)), for: .editingChanged)
@objc func textFieldDidChange(_ textField: UITextField) {
//print(textField.text)
}
推荐阅读
- python - 如何使用 boto3 获取所有 AWS AMI 的列表?
- sql - 请求其他表中至少有 2 条记录
- java - 创建文本文件并添加到 zip 文件并在本地服务器中下载 spring boot
- php - 如何在 PHP 中将 ByteArray 字符串转换为 NEO 地址?
- facebook - Facebook 私人回复回复未提供 user_id
- azure - 如何创建与 adla 的链接服务
- c++ - 我可以根据其 operator() 的签名专门化可变参数模板参数吗
- java - 集成总线添加外部 jar 异常
- google-cloud-platform - 如何将堆栈驱动程序日志导出到文件以进行本地处理?
- angular - LocationStrategy.pushState(state: any, title: string, url: string, queryParams: string) - 什么是状态?