UIPopoverController에 UISwitch가 있고 popover VC를 열면 기본 설정은 ON입니다. 나는 당신이 그것을 "OFF"로 설정하고 UIPopover를 닫을 때 그것을 갖기 위해 노력하고있다. popover를 다시 열면 UISwitch의 상태는 그대로 유지된다. 내 인생에서 나는 이것을 이해할 수 없으며, 정말 간단하다고 생각합니다. 나는 누군가가 나를 올바른 방향으로 인도 할 수 있을지 궁금해하고 있었다. 어떤 도움이라도 정말로 감사 할 것입니다! 이 상호 작용 년대 UISwitch에 호출UISopitch를 닫을 때 UISwitch가 OFF 상태를 유지하지 않습니다.
//--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...
를 만들 수있는 기능입니다가 팝 오버 (설정)입니다 :
[편집]이
내가 함께 일하고 있어요 코드입니다 그것은이 무효 기능을 실행하여 :- (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] 위 코드는 내가 추가 한 코드를 편집했습니다. 당신이 다시 ALLOC 당신이 컨트롤러마다 그와
pop = [[UIPopoverController alloc] initWithContentViewController:settings];
(ON 기본에) 초기 설정으로 초기화 :
대답은 쉽습니다. popover를 닫을 때 상태를 저장하고 다시 열 때 수정할 수 있습니다. 하지만 코드에 따라 답변을 다르기 때문에 코드를 게시해야합니다. –
감사합니다. 코드를 포함하도록 첫 번째 게시물을 편집했습니다. – Ollie177