투케이2K

169. (ios/swift) ViewController (뷰 컨트롤러) 에서 window rootViewController (루트 뷰 컨트롤러) 지정, 화면 전환 (intent) 본문

IOS

169. (ios/swift) ViewController (뷰 컨트롤러) 에서 window rootViewController (루트 뷰 컨트롤러) 지정, 화면 전환 (intent)

투케이2K 2022. 8. 17. 17:12
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[사전 설정]

 

[소스 코드]

import UIKit


// MARK: [클래스 정의]
class ViewController: UIViewController {
    
    
    // MARK: [뷰 메모리 로드 수행 실시]
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        print("")
        print("===============================")
        print("[ViewController >> viewDidLoad() :: 뷰 메모리 로드 실시]")
        print("===============================")
        print("")
    }
    
    
    
    
    
    // MARK: - [뷰 화면 표시]
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("")
        print("===============================")
        print("[ViewController >> viewDidAppear() :: 뷰 화면 표시]")
        print("===============================")
        print("")
    }
    
    
    
    
    
    // MARK: - [뷰 종료 상태]
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        print("")
        print("===============================")
        print("[ViewController >> viewDidDisappear() :: 뷰 종료 상태]")
        print("===============================")
        print("")
    }
    
    
    
    
    
    // MARK: - [화면 전환 버튼 클릭 이벤트 정의]
    @IBAction func intentAction(_ sender: Any) {
        print("")
        print("===============================")
        print("[ViewController >> intentAction() :: 화면 전환 수행 실시]")
        print("===============================")
        print("")
        
        DispatchQueue.main.async {
            
            // [Main 스토리 보드 지정 실시]
            let MainStoryBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)

            // [스토리보드 사용 아이디 지정 실시]
            let SecondVC = MainStoryBoard.instantiateViewController(withIdentifier: "SecondVC") as! SecondController
            
            // [딜리게이트 지정 실시]
            let delegate = UIApplication.shared.connectedScenes.first!.delegate as! SceneDelegate // [ios 13 이상]
            //let delegate = UIApplication.shared.delegate as! AppDelegate // [ios 13 미만]

            // [루트 뷰 컨트롤러 변경 실시]
            delegate.window?.rootViewController = SecondVC
        }
    }
    



} // [클래스 종료]
 

[결과 출력]


반응형
Comments