多个UISwitch IOS

时间:2014-03-05 17:53:19

标签: ios objective-c

我的视图控制器上有3个开关。 如果用户更改了其中任何一个,则需要将3个设置保留为db。

所以

switch a = 1, switch b = 0 and switch c = 1

坚持到db

switch a = 0, switch b = 1  and switch c = 1

坚持到db

switch a = 0, switch b = 0 and switch c = 0 

坚持到db 等

我可以通过一个事件触发一个罚款,但是当我尝试在一个交换机上触发事件时比较其他事件时,我会遇到大量错误。

我正在使用If命令和switch.on。

那么如何在修改三个开关时捕获一个事件。

谢谢

更新:::

我已完成此代码:当我按下按钮时出现错误

    [self.Switch1 addTarget:self action:@selector(flipswitch:) forControlEvents:UIControlEventValueChanged];
    [self.NSwitch2 addTarget:self action:@selector(flipswitch:)forControlEvents:UIControlEventValueChanged];
    [self.Switch3 addTarget:self action:@selector(flipswitch:)forControlEvents:UIControlEventValueChanged];

}


- (IBAction) flipSwitch: (UISwitch *) sender
{

}

当我改变开关时,我得到了

2014-03-05 18:11:44.775 OutTonight [4788:60b] -[SettingsViewController flipswitch:]: unrecognized selector sent to instance 0x15ec9fd0 2014-03-05 18:11:44.777 OutTonight[4788:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SettingsViewController flipswitch:]: unrecognized selector sent to instance 0x15ec9fd0'

我要做的就是比较3个开关,然后只是坚持到数据库。

1 个答案:

答案 0 :(得分:1)

下次确保显示您收到的错误,以便我们更具体地帮助您。

要解决您的问题,您需要按照这些步骤进行操作。

  1. 如果您使用的是Storyboard / Interface Builder,则在视图控制器中创建三个IBOutlet,每个开关一个。{如果您在代码中创建它们,请创建三个实例变量。

  2. 创建一个方法,例如:

    - (IBAction) flipSwitch: (UISwitch *) sender
    {
        ....
    }
    
  3. 使用以下方法连接3个开关目标操作:

    [switch addTarget: self action: @selector(flipSwitch:) forControlEvents: UIControlEventValueChanged];
    
  4. 实施flipSwitch:方法,通过在步骤1中创建的实例变量访问所有3个开关,并将其状态保存到数据库中。您可以访问每个on实例的UISwitch属性,以了解打开和关闭的内容。

  5. 有关如何使用UISwitch的详细信息,请参阅以下链接:

    还可以在Google上找到更多示例。