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

时间:2016-02-03 21:28:32

标签: xcode swift uiswitch viewwithtag

我有这个函数,它获得一个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值一样,它会输出正确的值。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

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