swift - 최상위 ViewController 구하기
/**
# getRootViewController
- Author: k
- Date:
- Parameters:
- vc: rootViewController 혹은 UITapViewController
- Returns: UIViewController?
- Note: vc내에서 가장 최상위에 있는 뷰컨트롤러 반환
*/
public func getRootViewController(vc:UIViewController) ->UIViewController?{
///[1] 네비게이션 컨트롤러
if let nc = vc as? UINavigationController {
if let vcOfnavController = nc.visibleViewController {
return self.getRootViewController(vc: vcOfnavController)
}
///[2] 탭뷰 컨트롤러
}else if let tc = vc as? UITabBarController {
if let tcOfnavControler = tc.selectedViewController {
return self.getRootViewController(vc: tcOfnavControler)
}
///[3] 뷰 컨트롤러
}else{
if let pvc = vc.presentedViewController{
return self.getRootViewController(vc: pvc)
}else {
return vc
}
}
return nil
}
'아이폰 개발 > Swift' 카테고리의 다른 글
swift DispatchGroup 과 DispatchSemaphore - 1 (0) | 2021.09.25 |
---|---|
swift Date 날짜 달력 관련 클래스 정리 (0) | 2021.09.24 |
swift custom popup - 재사용가능한 팝업 (0) | 2021.08.09 |
swift 스위치 - 위치이동 (0) | 2021.08.02 |
swift Dynamic Font (aspect ratio & multiplier & autoshrink) (0) | 2021.08.01 |