EDIT : 여전히 답이 필요합니다!UIViewController가 해제 된 후 각 UISwitch 상태를 저장하고 복원하는 방법
내가 2 UIViewControllers을 가지고있다 (의 그들 ParentVC 및 SecondVC를 부르 자).
SecondVC에는 11 개의 UISwitch 요소가 있고 SecondVC에서 ParentVC 로의 각 UISwitch에 대한 상태를 보내려면 1 개의 버튼이 있습니다.
parentVC에는 NSDictionary의 키가 포함될 NSArray가 필요합니다 (IBAction에 설명되어 있음). 나는 IBAction를 가지고 :
NSDictionary *resultDic = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool: [_cafeSwitch isOn]], @"Cafe",
.....
[NSNumber numberWithBool: [_bowlingSwitch isOn]], @"BowlingClub",
nil];
NSMutableArray *resultArray = [[NSMutableArray alloc] init];
for (NSString *key in resultDic) {
NSNumber *value = [resultDic valueForKey:key];
if ([value compare:[NSNumber numberWithInt:1]] == NSOrderedSame)
[resultArray addObject:key];
}
[_delegate sendSelectedPlaceTypeArray:[NSArray arrayWithArray:resultArray]];
[self dismissViewControllerAnimated:YES completion:^{}];
방법 sendSelectedPlaceTypeArray
은 ParentVC이있는 NSArray를받을 수있는 위임 방법이다. 모든 스위처는 기본 상태로 선택됩니다. 기본적으로
- (void)sendSelectedPlaceTypeArray:(NSArray *)placeTypeArray {
filteredPlaceTypeArray_ = placeTypeArray;
}
이 filteredPlaceTypeArray_ 모두 11 개 곳의 유형을 포함 ParentVC에서 은 내가 대리자 메서드의 구현을 가지고있다. SecondVC를 제공
filteredPlaceTypeArray_ = [NSArray arrayWithObjects:@"Cafe", ... ,@"BowlingClub", nil];
방법은 다음과 같습니다
- 필터와 함께 작동하도록 좋은 솔루션입니다 :
- (IBAction)showPlaceTypeFilter:(id)sender { UIStoryboard *iPhoneStoryboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]; PlaceTypeFilterViewController *destViewController = [iPhoneStoryboard instantiateViewControllerWithIdentifier:@"PlaceTypeFilterViewController"]; destViewController.delegate = self; destViewController.currentFilteredPlaceTypesArray = filteredPlaceTypeArray_; [self presentViewController:destViewController animated:YES completion:nil]; }
나는 질문의 번호를 가지고있다?
- SecondVC가 두 번 이상 호출되고 UISwitch 요소 11 개 중 2 개가 변경된 경우 UISwitch 요소 값을 저장하고 복원하는 방법은 무엇입니까? 이것에 가장 적합한 솔루션은 무엇입니까? SecondVC가 나타나면 모든 UISwitch 요소가 선택 되었기 때문입니다.
제 질문은 정확합니다. 감사합니다. Artem.
for (UISwitch *mySwitch in [self.view subviews]) {
if ([mySwitch isKindOfClass:[UISwitch class]]) {
NSLog(@"State == %@",[mySwitch description]);
//Do what ever you want to do with your switches
}
}
편집 : 내가 당신에게서 understod으로
내 USSwitch의 각 요소에 대한 올바른 상태를 가지고 각 UISWitch에 대한 상태를 설정합니다. 문제는 SecondVC가 두 번 이상 호출되고 11 개의 UISwitch 요소 중 2 개가 변경된 경우이 값을 저장하고 복원하는 방법입니다. –
그러면 질문이 잘못되었습니다 !! 질문 헤더를 읽으십시오 !! – Mutawe
헤더가 수정되었습니다. 감사합니다. –