아이폰 개발/Swift
swift - 최상위 ViewController 구하기
인생여희
2021. 8. 10. 23:54
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
}