UIPopoverControllerでUISwitchが取得されており、Popover VCを開いたときのデフォルト設定はONです。私はあなたがそれを "OFF"にしてUIPopoverを閉じると、ポップオーバーを再び開いたときにUISwitchの状態が変わらないようにしようとしています。私の人生のために、私はこれを理解することができず、本当にシンプルなものだと賭けています。誰かが私を正しい方向に向けることができるかもしれないと思っていましたか?どんな助けでも本当にありがとう!UIPopoverを解除するときにUISwitchがOFF状態を維持しない
[EDIT]これは、私が働いているコードです:
//--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に呼びかけそれは、このボイド関数を実行して:
- (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]上記のコードを私が追加したものに編集しました。どの作品!あなたの再アロケーションあなたはコントローラたびにそれで
pop = [[UIPopoverController alloc] initWithContentViewController:settings];
、(ONデフォルトで)初期セットアップでそれを初期化:
答えは簡単です:あなたのポップオーバーを閉じるときに状態を保存し、それを開いたときに変更します。 しかし、いくつかのコードを投稿する必要があります。あなたに合った答えがあなたのコードに依存するからです。 –
ありがとう、私はコードを含めるために私の最初の投稿を編集しました。 – Ollie177