我试图在没有使用@ i动作的情况下轻敲我的UISwitch时调用函数但是我无法找到正确的方法来执行此操作,无论我如何尝试调用它都似乎无效。我通过代码而不是故事板使用所有内容所以使用ib属性并不是我试图在使用它时的一个选项
我正在使用此功能,但不断收到错误
以NSException类型的未捕获异常终止
func gameSwitchTapped(){
print("touched")
if gameMuteSwitch.isOn == true {
gameview.saveData.set(false, forKey: gameview.gameMuteKey)
} else {
gameview.saveData.set(true, forKey: gameview.gameMuteKey)}
}
而且,其他地方:
gameMuteSwitch.addTarget(self, action: Selector(("gameSwitchTapped")), for: UIControlEvents.valueChanged)
答案 0 :(得分:2)
我认为应该这样做:
mySwitch.addTarget(self, action: #selector(self.switchChanged(sender:)), forControlEvents: UIControlEvents.ValueChanged)
func switchChanged(sender: UISwitch) {
let value = mySwitch.on
// Do something
}
答案 1 :(得分:1)
在目标C中:
[mySwitch addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];