반응형
- Navigation Stack에 Push된 뷰 컨트롤러인가
- 모달 형식으로 Present된 뷰 컨트롤러인가
이 두가지일 때 가장 마지막에 push된 뷰를 제거할 방법이 고민이 되어 정리를 하게 되었다.
모달 형식이면
[self dismissViewControllerAnimated:YES completion:nil];
네비게이션 스택에 푸시된 형식이면
[self.navigationController popViewControllerAnimated:YES];
아래 코드는 현재 뷰가 모달 형식인지 아닌지를 체크하는 로직이다.
- (BOOL)isModal {
if([self presentingViewController])
return YES;
if([[[self navigationController] presentingViewController] presentedViewController] == [self navigationController])
return YES;
if([[[self tabBarController] presentingViewController] isKindOfClass:[UITabBarController class]])
return YES;
return NO;
}
// 출처: https://you9010.tistory.com/138 [본질의 중요성]
반응형
'iOS > Objective-C' 카테고리의 다른 글
[iOS/Objective-C] expected identifier or '(’ 오류 (0) | 2022.02.10 |
---|---|
[iOS/Objective-C] NSData와 NSString 형변환하기 (0) | 2022.02.03 |
[iOS/Objective-C] JSON Parsing (0) | 2022.02.03 |