Programming/Swift(iOS)

Swift 화면 전환 방법

홍열 2021. 9. 7. 11:42
728x90

아이폰 화면 구성 

  • StackView로 쌓아올리는 방법
  • Push로 현재 ViewController위에 새로운 화면을 쌓고
  • Pop으로 현재 ViewController를 없애, 이전 화면으로 돌아간다. 

 

화면 전환 방법 

  • 소스코드를 통해서 전환하는 방식
  • StoryBoard를 통해 전환하는 방식

ViewController의 View위에 다른 View를 가져와 바꿔치기

ViewController에서 새로운 ViewController 호출하기

NavigationController를 이용하여 화면전환

SegueWay를 사용하여 화면 전환

 

예제 1 - 소스코드상에서 present와 dismiss 이용 

mainViewController에서 secondViewController를 호출하는 경우 

secondViewController의Identity의 StoryboardID를 꼭 넣어줘야한다. 

이 경우에는 NavigationBar가 자동으로 나오지 않는다.

 

그리고 mainViewController에서 아래와 같이 호출 해준다. 

    @IBAction func tapCodePushButton(_ sender: Any) {
        guard let viewController = self.storyboard?.instantiateViewController(identifier: "secondViewController") as? secondViewController else { return }
        self.navigationController?.pushViewController(viewController, animated: true)
    }

secondViewController에서 해당 ViewController를 종료하고 싶으면 dismiss 이용

    @IBAction func tapBackButton(_ sender: Any) {
        self.navigationController?.popViewController(animated: true)
    }

예제 2 - 소스코드상에서 push와 pop 이용 

예제1번과 다르게 Navigation을 사용하는 것이므로, backButton이 자동으로 나온다. 

 

    @IBAction func tapCodePushButton(_ sender: Any) {
        guard let viewController = self.storyboard?.instantiateViewController(identifier: "secondViewController") as? secondViewController else { return }
        self.navigationController?.pushViewController(viewController, animated: true)
    }
    @IBAction func tapBackButton(_ sender: Any) {
        self.navigationController?.popViewController(animated: true)
    }

 

예제 3 - segue로 push하기

storyboard에서 drag를 하여 대상이 되는 ViewController에 끌어다 놓으면 된다.

그리고 종류를 show로 해주면 된다.

예제 3 - segue로 present하기

storyboard에서 drag를 하여 대상이 되는 ViewController에 끌어다 놓으면 된다.

그리고 종류를 Present Modally로 해주면 된다. 그리고 presentation 옵션을 여러가지로 지정할 수도 있다.