Swift: изменение состояния переключателя UIS при нажатии кнопки с тем же тегом
У меня есть эта функция, которая получает 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 ответ
Решение
viewWithTag
может не получить представление, которое вы хотите. Вместо этого вы можете попробовать цикл for.
for view in self.view.subviews {
if let tagToSwitch = view as? UISwitch {
if tagToSwitch.tag == sender.tag {
tagToSwitch.setOn(true, animated: true)
}
}
}