2010-09-15 54 views
4

这里是IBAction为方法链接到UISwitch与ValueChanged事件:UISwitch不返回(开/关)的当前状态

- (IBAction) sanitySwitch { 
if (checkoption.on == YES) { 
    NSLog(@"SanityCheck ENABLED"); 
    sanityCheck = YES; 
} else { 
    NSLog(@"SanityCheck DISABLED"); 
    sanityCheck = NO; 
} 
} 

它总是返回 “SanityCheck DISABLED”。 UISwitch checkoption正确地连接到XIB文件中的对象,并且已经放置了正确的@propery和@syntetize设置。

回答

14

用此代码替换代码。 并用开关重新连接作为值更改控制事件。

- (IBAction) sanitySwitch:(id)sender { 
    if ([sender isOn]) { 
     NSLog(@"SanityCheck ENABLED"); 
     sanityCheck = YES; 
    } 
    else { 
     NSLog(@"SanityCheck DISABLED"); 
     sanityCheck = NO; 
    } 
} 
+0

要标记代码缩进4空格或选择代码并按下'010'按钮 - 无需html标记等 – 2010-09-15 10:02:23

+0

+1,并且非常感谢... :) – Sarah 2012-03-30 11:06:43

+1

我有一个完全奇怪的问题,你有吗?要使用“发件人”而不是self.yourSwitch,“isOn”(或.on)才能正常工作。谁知道? – Fattie 2014-01-06 12:04:00

-1

你必须检查如下您“的”使用属性错误的方法:

if ([checkoption isOn]) 

the documentation正常。

+0

我试着用if([checkoption isOn]),该方法仍然总是返回“SanityCheck DISABLED”。 – Kami 2010-09-15 07:47:13

+0

萨蒂扬,'getter = foo'只适用于'[switch isOn]'等显式调用,而不适用于点语法。 – 2010-09-15 08:54:28