【问题标题】:UISwitch not returning its current state (on/off)UISwitch 未返回其当前状态(开/关)
【发布时间】:2011-04-12 13:06:56
【问题描述】:

这是通过 valueChanged 事件链接到 UISwitch 的 IBAction 方法:

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

它总是返回“SanityCheck DISABLED”。 UISwitch 检查选项已正确链接到 XIB 文件中的对象,并且已放置正确的 @propery 和 @syntetize 设置。

【问题讨论】:

    标签: iphone uiswitch


    【解决方案1】:

    用此代码替换代码。 并再次连接 switch 作为值更改控制事件。

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

    【讨论】:

    • 标记代码缩进4个空格或选择代码并按010按钮 - 不需要html标签等。
    • 我遇到了一个非常奇怪的问题,您必须使用“sender”而不是 self.yourSwitch,才能使“isOn”(或 .on)工作。谁知道?
    【解决方案2】:

    您以错误的方式使用“on”属性 您必须检查如下:

    if ([checkoption isOn])
    

    正确查看the documentation

    【讨论】:

    • 我已经尝试使用 if ([checkoption isOn]),该方法仍然总是返回“SanityCheck DISABLED”。
    • Satyam, getter=foo 仅适用于像 [switch isOn] 这样的显式调用,不适用于点语法。
    猜你喜欢
    • 2018-04-04
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多