🦜 Swift

[iOS] Navigation Controller 공부 기록 - 1

ji-hyun 2023. 5. 13. 16:32

화면 이동 방법

화면을 이동하는 방법은 2가지가 있다.

 

1. Navigation Controller 이용 <- 권장

 

- 코드로 이동(Push, Pop)

- Segue 로 이동

 

 

2. 팝업창으로 이동 : 간단한 이벤트 화면(로그인, 회원가입)

 

- 코드로 이동(Present, Dismiss)

- Segue 로 이동

 

 

1번은 수평이동, 2번은 수직이동이다.

수직적인 이동은 간단히 떴다가 사라지는 화면으로 이해하면 좋다.

 

 

 

 


1. Navigation Controller 이용

Navigation Controller 생성 방법

 

위와 같이 따라해보자

 

Navigation Controller 가 생기고 진입점도 Navigation Controller 로 되어 있다.

여기에 뷰가 따로 있진 않고 제어하는 코드만 들어있다고 이해하자

루트뷰는 메인화면으로 지칭되어 있음!

 

 

 

 

 

먼저 Seque 로 이동하는 방법을 보자.

UIButton 을 생성 후, 오른쪽 화면에다가 드래그하면 Action Segue 창이 뜨며 이때 Show 를 클릭해준다.

그럼 간단하게 코드를 치지 않고도 화면이 이동되어진다.

 

화면에다가 연결 드래그하면 다음과 같은 창이 뜬다

 

 

 

show 를 클릭해야 한다

 

 

 

 

 

이번엔 코드로 이동하는 방법을 알아보자.

 

 

위와 같은 화면에서 세번째 화면으로 이동해야 한다고 하자. 

"코드로 이동하기" 버튼과 "뒤로 이동하기" 버튼을 코드로 다음과 같이 작성해야 한다.

 

 

import UIKit

class NvViewController2: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }
    
    @IBAction func onBtnNext(_ sender: UIButton) {
        let NewVC = self.storyboard?.instantiateViewController(withIdentifier: "ThirdVC") as! NvViewController3
        self.navigationController?.pushViewController(NewVC, animated: true)
    }
    
    @IBAction func onBtnBack(_ sender: UIButton) {
        self.navigationController?.popViewController(animated: true)
    }
    
}

 

 

여기서 ThirdVC 는 아래와 같이 세번째 화면 Storyboard ID 에다가 "ThirdVC" 라고 반드시 써줘야 한다.

코드를 보면 storyboard, navigationController 뒤에 물음표가 붙어 있는 것을 볼 수 있는데 이는 null 일 수 있으므로 옵셔널 처리해준 것이다.

 

 

 

Use Storyboard ID 를 꼭 체크해주자!