투케이2K

182. (ios/swift) rootViewController 사용해 present 인텐트 화면 이동 최상위 뷰 컨트롤러 확인 실시 본문

IOS

182. (ios/swift) rootViewController 사용해 present 인텐트 화면 이동 최상위 뷰 컨트롤러 확인 실시

투케이2K 2022. 9. 7. 13:49
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [present 이동 최상위 뷰 컨트롤러 확인 실시]
    func presentTopViewController() -> UIViewController? {
        
        /*
         --------------------------------------------
         [요약 설명]
         1. 해당 로직으로 체크할 경우 이전 뷰 컨트롤러 (A_Intro) 가 viewDidDisappear 뷰 종료 상태 상태가 되어야하고,
            현재 뷰 컨트롤러 (A_Main) 가 viewDidAppear 뷰 화면 표시가 되어야합니다
         --------------------------------------------
         2. present 방식 :
            
         // [스토리보드 사용 : present 방식 : A_MainVC = 스토리보드 아이디 지정 / as = 컨트롤러 지정]
         guard let A_MainVC = self.storyboard?.instantiateViewController(withIdentifier:"A_MainVC") as? A_Main
         else {
             return
         }
                 
         A_MainVC.modalPresentationStyle = .fullScreen // 전체화면 (기본은 팝업형태)
         self.present(A_MainVC, animated: false, completion: nil) // Intro >> Main 인텐트 이동 실시
         --------------------------------------------
         */

        // [리턴 반환 컨트롤러 선언]
        var topViewController : UIViewController? = nil
                
        // [로직 수행 실시]
        if let keyWindow = UIApplication.shared.keyWindow {
            if var viewController = keyWindow.rootViewController {
                while viewController.presentedViewController != nil {
                    viewController = viewController.presentedViewController!
                }
                topViewController = viewController
            }
        }
        
        // [로그 출력]
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> presentTopViewController() :: present 화면 이동 최상위 뷰 컨트롤러 확인]")
        print("[topViewController :: \(String(describing: topViewController))]")
        print("====================================")
        print("")

        // [리턴 반환]
        return topViewController
    }
 

[결과 출력]


반응형
Comments