Swift: 使用相同标签点击按钮时更改 UISwitch 状态

Swift: Change UISwitch status when a button is clicked on with the same tag

我有这个函数,它获取一个 UISwitch,其标签值与触发该函数的按钮相同,然后将 UISwitch 的状态更改为 true:

let tagToSwitch = self.view.viewWithTag(sender.tag) as? UISwitch
tagToSwitch?.setOn(true, animated: true)

但是这不起作用,如果我更改 tagToSwitch! 应用程序崩溃并返回错误 'fatal error: unexpectedly found nil while unwrapping an Optional value' 虽然我不确定打印时哪里出错了在此之前的 sender.tag 值,它会打印正确的值。

感谢任何帮助。

viewWithTag 可能无法获得您想要的视图。您可以尝试使用 for 循环。

for view in self.view.subviews {
    if let tagToSwitch = view as? UISwitch {
        if tagToSwitch.tag == sender.tag {
            tagToSwitch.setOn(true, animated: true)
        }
    }
}