gpt4 book ai didi

ios - 在 Swift 中使用复选框

转载 作者:行者123 更新时间:2023-11-30 11:55:52 25 4
gpt4 key购买 nike

我试图弄清楚如何仅获取已选中的复选框的值。我将有大约十个带有提交 UIButton 的复选框。当按下“提交”按钮时,我将仅保存所选复选标记的所有值。我现在拥有的代码不会打印“拳击和空手道”,它只会在选择拳击时打印“拳击”。 screenshot

class SignUpSecondViewController: UIViewController, BEMCheckBoxDelegate {


@IBOutlet weak var wrestling: BEMCheckBox!
@IBOutlet weak var karate: BEMCheckBox!
@IBOutlet weak var boxing: BEMCheckBox!

override func viewWillAppear(_ animated: Bool) {
navigationController?.setNavigationBarHidden(false, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()

boxing.delegate = self
karate.delegate = self
wrestling.delegate = self

// Do any additional setup after loading the view.
}

func didTap(_ checkBox: BEMCheckBox) {

if (checkBox.tag == 1 && checkBox.on){
print("BOXING")
}else if (checkBox.tag == 1 && checkBox.on) && (checkBox.tag == 2 && checkBox.on){
print("Boxing and karate")

}

}

最佳答案

每次您只是检查 checkBox 时,都会同时比较 checkBox 标记 1 和 2。它总是给你虚假的。根据需求,创建一个Array类型的全局变量 options ,使用这几行代码:

    var options = [String]()
func didTap(_ checkBox: BEMCheckBox) {
switch checkBox {
case wrestling:
addRemoveOption(forState: checkBox.on, option: "WRESTLING")
case karate :
addRemoveOption(forState: checkBox.on, option: "KARATE")
default:
addRemoveOption(forState: checkBox.on, option: "BOXING")
}

}
func addRemoveOption(forState : Bool , option : String)
{
switch forState
{
case true:
options += [option]
case false:
if let index = options.index(of: option)
{
options.remove(at: index)
}

}
}
@IBAction func actionSubmit(_ sender : Any)
{
print(options.joined(separator: "&"))
}

希望这对你有帮助

关于ios - 在 Swift 中使用复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47824670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com