iOS 어플리케이션 개발 중 제가 구현한 UIViewController 를 Modal로 실행시켜야 할 일이 있었습니다. 


iOS 4~7 까지 호환성을 맞추다 보니 Modal 관련 코드가 상이하여 테스트 한 결과 아래와 같이 구현하였습니다. 



- Modal Open

1
2
3
4
5
6
7
8
9
10
11
NSString *version = [[UIDevice currentDevice] systemVersion];
NSString *ios = [version substringToIndex:1];
    
[vc.view setFrame:self.view.frame];
    
if ([ios isEqualToString:@"4"] ) {
    [self addChildViewController:vc];
    [self presentModalViewController:vc animated:YES];
} else {
    [self presentViewController:vc animated:YES completion:nil];
}


- Modal Close 

1
2
3
4
5
6
7
8
NSString *version = [[UIDevice currentDevice] systemVersion];
NSString *ios = [version substringToIndex:1];
    
if ([ios isEqualToString:@"4"] || [ios isEqualToString:@"5"]) {
    [vc dismissModalViewControllerAnimated:NO];
} else {
    [vc dismissViewControllerAnimated:YES completion: nil];
}



위와 같이 처리한 이유는 UIViewController 의 API가 변경되어 호출 할 수 없기 때문입니다. 


번거롭지만 iOS Version 을 체크하여 각각 호출하는 코드를 분기하였습니다. 

블로그 이미지

Tablo@

leeyw2355@gmail.com