我目前有一个使用“if”语句隐藏或取消隐藏一些 UIButtons 的 UISwitch。开关的开/关状态和按钮的隐藏状态都保存在 NSUserDefaults 中。我想知道如何使该开关出现在设置包中。
这是 .m 中的“if”语句代码:
- (IBAction)switchTheSwitch:(id)sender {
if (Languages.on) {
china.hidden = NO;
japan.hidden = NO;
french.hidden = NO;
spanish.hidden = NO;
}
else {
china.hidden = YES;
japan.hidden = YES;
french.hidden = YES;
spanish.hidden = YES;
}
[self buttonHidden:sender];
}
现在这是我的代码,它将开关的隐藏状态保存在 .m 中:
- (void)buttonHidden:(id)sender {
NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults];
[Defaults setBool:china.hidden forKey:ChinaChanged];
[Defaults setBool:japan.hidden forKey:JapanChanged];
[Defaults setBool:french.hidden forKey:FrenchChanged];
[Defaults setBool:spanish.hidden forKey:SpanishChanged];
[Defaults synchronize];
}
这是我在.m中保存开/关状态的代码:
- (IBAction)switchChangedValue:(id)sender {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:Languages.on forKey:SwitchChanged];
[userDefaults synchronize];
}
这是我的视图确实加载:
- (void)viewDidLoad {
NSUserDefaults *Defaults = [NSUserDefaults standardUserDefaults];
china.hidden = [Defaults boolForKey:ChinaChanged];
japan.hidden = [Defaults boolForKey:JapanChanged];
french.hidden = [Defaults boolForKey:FrenchChanged];
spanish.hidden = [Defaults boolForKey:SpanishChanged];
[super viewDidLoad];
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
Languages.on = [userDefaults boolForKey:SwitchChanged];
}
如何使设置包中的切换开关替换视图控制器上的开关?