UIPopoverControllerにUISwitchがあり、ポップオーバーVCを開くとデフォルト設定がオンになっています。「OFF」に設定してUIPopoverを閉じたときに、ポップオーバーを再度開いたときにUISwitchの状態が同じになるようにしようとしています。私の人生では、これを理解することはできませんし、それは本当に単純なことだと思います。誰かが私を正しい方向に向けることができるのではないかと思っていましたか?どんな助けでも本当に感謝します!
[編集]これは私が使用しているコードです:
//--NEW CODE--//
#define SWITCH_KEY_STATE @"Save UISwitch State"
- (IBAction)settingsPopover:(id)sender {
if(![pop isPopoverVisible]){
settings = [[settingsView alloc] initWithNibName:@"settingsView" bundle:nil];
settings.setDelegate = self;
pop = [[UIPopoverController alloc] initWithContentViewController:settings];
[pop setPopoverContentSize:CGSizeMake(200, 100)];
[pop presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
//--NEW CODE--//
popoverState = [NSUserDefaults standardUserDefaults];
self.settings.hintSwitch.on = [popoverState boolForKey:SWITCH_KEY_STATE];
[self.settings.hintSwitch addTarget:self action:@selector(onOff:) forControlEvents:UIControlEventValueChanged];
} else {
[pop dismissPopoverAnimated:YES];
}
}
これは、ポップオーバーを作成する関数です。これは[self.settings.hintSwitch...
、UISwitchを呼び出すポップオーバー(設定)であり、UISwitchと対話すると、次のvoid関数を実行します。
- (void)onOff:(id)sender {
if (settings.hintSwitch.on) {
tutView.hidden = NO;
} else {
tutView.hidden = YES;
//--NEW CODE--//
popoverState = [NSUserDefaults standardUserDefaults];
[popoverState setBool:self.settings.hintSwitch.on forKey:SWITCH_KEY_STATE];
}
}
ポップオーバーを閉じて再度開くと、UISwitchが「ON」にリセットされます。
[EDIT2]上記のコードを追加したものに編集しました。これでうまくいきます!