1

我有一个 UISwitch,它在值更改时使用 if 语句隐藏或取消隐藏一些 UIButton。我希望在切换视图或退出应用程序时保存 UIButtons 的隐藏状态。我尝试使用 NSUserDefaults 但它没有保存,它只是恢复到我最初在 .storyboard 中设置的状态

.m 代码:

- (IBAction)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 viewDidLoad 代码:

- (void)viewDidLoad {

[super 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];

}

我不知道在哪里可以连接 IBAction 以使其工作。

这是我的 UISwitch 的 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;

    }
}

谁能帮我。

4

1 回答 1

1

我不确定我是否遵循,但对我来说,您似乎缺少的只是一个调用,buttonHidden以便实际保存默认值

做就是了

-(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];
}
于 2013-01-01T19:01:42.560 回答