1

我目前有一个使用“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];

}

如何使设置包中的切换开关替换视图控制器上的开关?

4

0 回答 0