当UISwitch改变状态时如何调用动作?

时间:2011-12-21 12:12:39

标签: iphone ios5 uiswitch

我想在UISwitch更改其状态时执行某些操作,因此设置为on或off。我该怎么做呢?我需要传递两个对象作为参数。

它是在代码中创建的,因此不使用xib。

3 个答案:

答案 0 :(得分:115)

[yourSwitchObject addTarget:self action:@selector(setState:) forControlEvents:UIControlEventValueChanged]; 

当您的开关状态发生变化时,这将调用以下方法

- (void)setState:(id)sender 
{
    BOOL state = [sender isOn];
    NSString *rez = state == YES ? @"YES" : @"NO";
    NSLog(rez);
}

答案 1 :(得分:3)

显然我们可以用Swift做同样的事情,这里是代码(编译并使用最新版本的 Swift 3.1

在切换按钮上添加操作:

mySwitch.addTarget(self, action: #selector(self.switchValueDidChange), for: .valueChanged)

并实施此方法:

func switchValueDidChange(sender:UISwitch!) {
    print(sender.isOn)
}

即使您没有使用发件人,也可以删除:

func switchValueDidChange() {
    // do your stuff
}

答案 2 :(得分:0)

轻松解决方案(使用swift 4):

@IBAction func toggleSwitch(_ sender: UISwitch) {
    if(mySwitch.isOn) {
        //Do something
    } else {
        //Do something
    }
}

将上述功能与连接选项卡

下已发送事件中更改的值相关联