iOS/Tip
현재 UIViewController이 Modal인지 확인
까칠코더
2022. 12. 8. 22:03
반응형
현재 UIViewController이 present를 이용해서 Modal방식인지 아니면 push 된 것인지 확인하기 위해서는 다음과 같이 extension을 사용하면 편리합니다.
extension UIViewController {
/// 현재 뷰 컨트롤러가 Modal (presented) 여부 (true = presented, false = pushed)
var isModal: Bool {
if let index = navigationController?.viewControllers.firstIndex(of: self), index > 0 {
return false
} else if presentingViewController != nil {
return true
} else if navigationController?.presentingViewController?.presentedViewController == navigationController {
return true
} else if tabBarController?.presentingViewController is UITabBarController {
return true
} else {
return false
}
}
}
이를 활용해서 화면을 닫을때 다음과 같이 사용하면 됩니다.
func close() {
if isModal {
dismiss(animated: true)
} else {
navigationController?.popViewController(animated: true)
}
}
반응형