📖왕초보 Navigation Controller in Code

뷰 컨트롤러의 버튼을 통해 다음 뷰 컨트롤러로 넘어가는 앱

🔖ViewControllers: Navigation ViewController 🔖Root View : ViewController

1. ViewController를 Navigation Controller로 만들기

Navigation Controller는 앱 실행 시 바로 사용되므로 SceneDelegatescenewillConnectTo에서 구현

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(windowScene: windowScene) // 화면을 구성하는 객체를 만들어 할당
        
        let naviVC = UINavigationController(rootViewController: ViewController())
        
        window?.rootViewController = naviVC 
        window?.makeKeyAndVisible()
    }
  1. Root View를 설정해 Navigation Controller 인스턴스를 만듦 → Navigation Controller 만들기 : naviVC
  2. window에 보여질 RootView를 NaviVC로 설정
  3. makeKeyAndVIsible()를 통해 window 표시하고 KeyWindow로 설정 (window를 가장 앞(아래)로 배치)

2. button 만들기 & selector 함수 연결

이건 알아서 해 쉽잖아

3. selector 함수 구현

버튼을 눌렀을 때 화면이 전환되도록 push

    @objc func nextButtonTapped() {
        navigationController?.pushViewController(SecondViewController(), animated: true)
    }
  • 네비게이션을 통해 push하면 자동으로 navigationBar가 생성(뒤로가기)

네?? 저는 navigationBar 없애고 싶은데용...?

그런 당신을 위한 애플의 친절한 isNavigationBarHidden() 메소드가 있습니다 ! ! ! 하지만 위의 코드는 해당 Navigation Controller로 묶인 모든 뷰 컨트롤러들의 navigatonBar를 숨기므로 요렇게 다시 false 설정 필수

4. 왕초보 탈출