これは、2 つの UISwitch の値を NSUserDefaults に保存し、デフォルトに保存された値に基づいてロード時にスイッチを設定することになっています。私はこれに何時間も取り組んできましたが、うまくいかないようです。どんな助けでも大歓迎です。
トグルは、設定に使用しているビューにあります。トグルが 2 つしかないので、NSUserDefaults を使用したいと思います。トグルのデフォルトはオフです。ON に切り替えて、その変更を保存して、トグルの値に基づいてユーザー エクスペリエンスを変更できるようにしたいと考えています。次に、ユーザーが設定を再度開いたときに、現在保存されている状態を表示するようにします。
値は保存されていると思いますが、再度設定ビューに入ったときにスイッチに適用されていません。
- (IBAction)setBeadVibratorBySwitchState:(id)sender
{
if (setBeadVibrator.selected == YES) {
NSUserDefaults *beadSettings = [NSUserDefaults standardUserDefaults];
[beadSettings setBool:NO forKey:@"beadSwitchStatus"];
[beadSettings synchronize];
}
if (setBeadVibrator.selected == NO) {
NSUserDefaults *beadSettings = [NSUserDefaults standardUserDefaults];
[beadSettings setBool:YES forKey:@"beadSwitchStatus"];
[beadSettings synchronize];
}
NSLog(@"Bead Executed");
}
- (IBAction)setDecadeVibratorBySwitchState:(id)sender
{
if (setDecadeVibrator.selected == YES) {
NSUserDefaults *decadeSettings = [NSUserDefaults standardUserDefaults];
[decadeSettings setBool:NO forKey:@"decadeSwitchStatus"];
[decadeSettings synchronize];
}
if (setDecadeVibrator.selected == NO){
NSUserDefaults *decadeSettings = [NSUserDefaults standardUserDefaults];
[decadeSettings setBool:YES forKey:@"decadeSwitchStatus"];
[decadeSettings synchronize];
}
NSLog(@"Decade Executed");
}
- (void)viewDidLoad
{
[super viewDidLoad];
setBeadVibrator.selected = [[NSUserDefaults standardUserDefaults] boolForKey:@"beadSwitchStatus"];
setDecadeVibrator.selected = [[NSUserDefaults standardUserDefaults] boolForKey:@"decadeSwitchStatus"];
}