我的视图控制器上有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个开关,然后只是坚持到数据库。
答案 0 :(得分:1)
下次确保显示您收到的错误,以便我们更具体地帮助您。
要解决您的问题,您需要按照这些步骤进行操作。
如果您使用的是Storyboard / Interface Builder,则在视图控制器中创建三个IBOutlet
,每个开关一个。{如果您在代码中创建它们,请创建三个实例变量。
创建一个方法,例如:
- (IBAction) flipSwitch: (UISwitch *) sender
{
....
}
使用以下方法连接3个开关目标操作:
[switch addTarget: self action: @selector(flipSwitch:) forControlEvents: UIControlEventValueChanged];
实施flipSwitch:
方法,通过在步骤1中创建的实例变量访问所有3个开关,并将其状态保存到数据库中。您可以访问每个on
实例的UISwitch
属性,以了解打开和关闭的内容。
有关如何使用UISwitch
的详细信息,请参阅以下链接:
还可以在Google上找到更多示例。