第一次启动应用程序时,UISwitch将默认值设置为OFF

时间:2016-04-09 21:58:49

标签: ios null nsuserdefaults uiswitch

我有一个用于静音效果的UISwitch。 当开关设置为ON时,声音效果静音。 使用NSUserDefaults保存状态。它很棒。但是当应用程序从安装后的第一次启动时,您已进入设置并且开关设置为OFF但没有声音。但是,如果我按下开关然后再关闭,声音效果会起作用。

如何将开关默认值设置为OFF。

我见过类似的豁免,但我没有让它起作用。

在第一个ViewController中,我有这个代码:

function propValueValidation(errMessages){
    var propValue = document.mortgage.propValue.value;
    var propValueNumber = Number(propValue);
    var downPayPlus = propValueNumber + 65000;
    var genericMsg = ' property value was provided. Please provide a positive' +
               ' whole number, at least 65,000 greater than the down payment.\n';
    if (!propValue.length) {
        errMessages += 'No' + genericMsg;
    } else if (isNaN(propValueNumber)) {
        errMessages += 'A non-numerical' + genericMsg;
    } else if (propValueNumber % 1) {
        errMessages += 'A fractional' + genericMsg;
    } else if (propValueNumber < downPayPlus){
        errMessages += 'A too small' + genericMsg;
    }
    return errMessages;
}

并在设置ViewController中:

- (void)viewDidLoad {

    NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];

    if ([[NSUserDefaults standardUserDefaults]objectForKey:@"switchKeyLjud"]==nil)
    {
        [[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"off"];
    }

    if ([[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"off"]) {

        ImageViewLjud.hidden = YES;

    }

}

这是开关

- (void)viewDidLoad {

NSUserDefaults *standardDefaults = [NSUserDefaults standardUserDefaults];

self->switchOutletLjud.on = ([[standardDefaults stringForKey:@"switchKeyLjud"]

                              isEqualToString:@"On"]) ? (YES) : (NO);


if ([[standardDefaults stringForKey:@"switchKeyLjud"] isEqual: @"On"]) {

    [ImageViewLjud setImage:[UIImage imageNamed:@"ljudOFF.png"]];
}

else {

    [ImageViewLjud setImage:[UIImage imageNamed:@"ljudON.png"]];
}
}

感谢您的帮助!!

0 个答案:

没有答案