在 swift (Xcode) 数组中获取多个文本字段值

Get multiple Textfield values in array in swift (Xcode)

我的故事板中有 10 个文本字段,我想获取它们的值并使用循环将其存储到数组中,这样我就不想使用 swift 4 ( Xcode) . var arr = [Int]() let val1 = Int(TxtVal1.text ?? "0") ?? 0 let val2 = Int(TxtVal2.text ?? "0") ?? 0 let val3 = Int(TxtVal3.text ?? "0") ?? 0 let val4 = Int(TxtVal4.text ?? "0") ?? 0 let val5 = Int(TxtVal5.text ?? "0") ?? 0 arr = [val1,val2,val3,val4,val5]

不想那样做

您可以将标签分配给 UITextField,然后将该文本字段的值存储到数组。

将标签设置为文本字段

    txtField1.tag = 101
    txtField1.tag = 102
    //and so on

创建并初始化数组以存储文本字段的文本

    var arrText = [String]()


    //textfield tag are set from 101 to 110
    
    for tag in 101...110 {
        
        if let txtField = view.viewWithTag(tag) as? UITextField, let txt = txtField.text {
            arrText.append(txt)
        }
    }

print("array = \(arrText)")

使用@IBOutletcollection。将所有 UITextField@IBOutlet collection.

绑定

示例:

class ViewController: UIViewController {

    @IBOutlet var textFields: [UITextField]!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        let arrTextValue = textFields.compactMap{Int([=10=].text ?? "0")}
        
        print(arrTextValue)
    }
}