iOS 개발자/Xcode 기능 정리

Xcode 기능 - 화면전환 코드로 하는 방법 / change ViewController with swift

FDEE 2021. 2. 3. 17:55

이번에는 코드로만 화면을 전환하는 방법에 대해 알아볼께요

 

 

먼저 Segue를 통해 화면을 전환하는 방법도 있답니다. 아래 링크를 참고해주시면 되겠습니다!

fdee.tistory.com/entry/Xcode-기능-화면전환하는-방법-change-ViewController

 

Xcode 기능 - 화면전환하는 방법 / change ViewController

이번에는 화면전환을 하는 방법에 대해 알아볼께요 사실 코드만으로 화면전환하는 방법도 있지만 먼저 코드가 아닌 Segue(세그)를 통해 화면전환하는 방법에 대해 알아볼께요 1. Main.storyboard 아ㅏ

fdee.tistory.com

위의 Segue를 통해 화면을 연결하다 보면 단점이 바로

아래 사진처럼 지저분해질 수 있답니다ㅠㅠ

 

그래서 이번에는 코드로만 연결하는 방법을 알려드리겠습니다!

 

1) Main.storyboard

먼저 이동하고자 하는 화면들에게 각각 이름을 부여해야 합니다

 

Storyboard ID 값에 이름을 넣습니다

저같은 경우 쉽게 짓기 위해서 ViewController의 이름과 동일하게 사용했습니다

 

 

이제 이름이 지어졌다면 화면을 이동시킬텐데 여기서

Navigation Controller를 사용하는지 여부에 따라 두가지 방법이 있습니다.

 

2) ViewController

첫번째로 Navigation Controller가 없는 경우

이 경우엔 화면전환은 아래 코드를 사용하시면 되겠습니다!

 

< 화면전환 코드 >

let vcName = self.storyboard?.instantiateViewController(withIdentifier: "PhoneCheckViewController")
        vcName?.modalPresentationStyle = .fullScreen //전체화면으로 보이게 설정
        vcName?.modalTransitionStyle = .crossDissolve //전환 애니메이션 설정
        self.present(vcName!, animated: true, completion: nil)

여기서 withIdentifier 값에 이동하고자 하는 화면이름을 넣어주시면 되겠습니다!

 

또한, 위 코드에서 두번째 줄을 통해 이동한 화면을 전체화면으로 보이게 설정이 가능합니다

세번째 줄을 통해 전환 애니메이션 설정이 가능합니다

 

다양한 설정이 가능하기 때문에 참고하시기 바랍니다

 

위 코드를 통해 이렇게 화면전환이 이루어지게 됩니다

 

 

두번째로 Navigation Controller 사용하는 경우

이번에는 이전화면으로 간편하게 갈 수 있는 Navigation Controller를 사용했을때 방법입니다.

 

이번에는 버튼이 많은 화면이다 보니 사진처럼

화면전환을 위한 함수를 따로 만든다음에 이동할 위치를 String 값으로 넣었습니다

 

아래의 코드처럼 이동하고자 하는 위치인 where를 알맞게 넣어주시면 되겠습니다!

 

< 화면전환 코드 (Navigation Controller) >

func goToViewController(where: String) {
        let pushVC = self.storyboard?.instantiateViewController(withIdentifier: `where`)
        self.navigationController?.pushViewController(pushVC!, animated: true)
    }

 

이렇게 코드를 통해 화면전환이 가능하답니다!

 

 

 

이렇게 코드를 통해 화면전환을 구현하면

 

훨씬 깔끔한 프로젝트가 됩니다