我有一个用于静音效果的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"]];
}
}
感谢您的帮助!!