ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift 화면 전환 방법
    Programming/Swift(iOS) 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 옵션을 여러가지로 지정할 수도 있다.

Designed by Tistory.