从多个UIButton制作UILabels的集合 - IOS,Swift 4

时间:2018-05-01 15:47:27

标签: ios swift collections uilabel textfield

尝试创建多个按钮和多个标签,以便在单击按钮时弹出警报控制器(使用文本字段,确定按钮,清除按钮和取消按钮)。

我试图最小化代码量,所以我制作了一系列标签:

@IBOutlet var textFieldLabel: [UILabel]!

@IBAction func textFieldTapped(_ sender: UIButton) {
    print("Other11 Button Tapped")
    openOther11Alert()
}

func openOther11Alert() {
    //Create Alert Controller
    let alert = UIAlertController (title: "Other:", message: nil, preferredStyle: UIAlertControllerStyle.alert)

    //Create Clear Action
    let bt = UIAlertAction(title: "CLEAR", style: UIAlertActionStyle.destructive){
        (action) in self.textFieldLabel[0].text = ""}
    alert.addAction(bt)

    //Create Cancel Action
    let cancel = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.cancel, handler: nil)
    alert.addAction(cancel)

    //Create OK Action
    let ok = UIAlertAction(title: "OK", style: UIAlertActionStyle.default) {   (action: UIAlertAction) in print("OK")
    let textfield = alert.textFields?[0]
    print(textfield?.text! as Any)
    self.textFieldLabel[0].text = textfield?.text!
    }
    alert.addAction(ok)

    //Add Text Field
    alert.addTextField { (textfield: UITextField) in
    textfield.text = self.textFieldLabel[0].text
    textfield.placeholder = "Other"
    }

    //Present Alert Controller
    self.present(alert, animated:true, completion: nil)
}

编辑: 我想点击按钮对应标签。目前,我只引用标签数组中的第一个元素(标签):

self.textFieldLabel[0].text

而不是引用" [0]" (第一个标签),我想引用点击的按钮,使按钮对应标签。

任何想法我是否能做我正在尝试的事情? 提前致谢! :)

1 个答案:

答案 0 :(得分:-1)

UIAlertController Documentation

根据文档,text fields属性应该为您提供一个UITextFields数组。根据您的错误消息,您以某种方式获取UILabel数组。也许错误信息是在谈论其他事情?