세그먼트 화 된 컨트롤러가 애플리케이션을 닫은 후 다시 열면 위치를 저장하지 않는다는 문제가 있습니다.세그먼트 화 된 컨트롤러 위치 저장
내 코드는 다음과 당과 같습니다
- (void)viewDidLoad {
[super viewDidLoad];
[self.segmentedControlButtonStyle addTarget:self action:@selector(changeButtonStyle:) forControlEvents:UIControlEventValueChanged];
}
- (IBAction)changeButtonStyle:(id)sender {
NSUserDefaults *sharedDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.number.application"];
NSInteger selectedSegmentedControlerIndex = self.segmentedControlButtonStyle.selectedSegmentIndex;
if (sharedDefaults) {
[sharedDefaults setInteger: selectedSegmentedControlerIndex forKey:@"MySelectedButtonStyleKey"];
[sharedDefaults synchronize];
}
}
재미있는 것은 내가 다시 열고 닫을 신청 후 변경 계속됩니다 버튼 스타일을 변경하면 내가 위에서 제공 NSUserDefaults 실제로 때문에 방법에서 올바른 인덱스를 절약한다는 것입니다 사실로 볼 수는 있지만 세그먼트 된 컨트롤러 자체가 올바른 세그먼트를 표시하지 않기 때문입니다.
각 세그먼트 변경 후 동기화 중이지만 여전히 분할 된 컨트롤러가 기본 위치를 유지하므로이 문제가 발생하는지 잘 모르겠습니다. 보기에서
을 설정하기 위해 추가해야합니다로드 않았고 당신은 그 저장된 인덱스 위치를 설정합니까? –
viewDidLoad에서 userDefaults를 읽고 올바른 색인을 segmentedcontrol로 설정해야합니다. – Kerberos
세그먼트 컨트롤의 선택된 상태를 설정하기 위해 실제로'''MySelectedButtonStyleKey'''를 사용하는 코드를 게시 할 수 있습니까? –