[Swift] iOS 화면전환하기

EmilY
4 min readJun 18, 2019

안녕하세요 에밀리입니다

iOS에서 화면 전환하는 법을 알아보겠습니다.

화면 전환 방법 네 가지

  1. ViewController의 view를 바꿔치기
  2. ViewController가 다른 ViewController 호출(present)
  3. NavigationController 사용하여 화면전환(push)
  4. 화면전환용 객체 Segue 사용

하나씩 살펴보겠습니다

  1. ViewController의 view를 바꿔치기

메모리 overflow 위험이 있기 때문에 좋은 방법이 아니라고 합니다.

2. ViewController가 다른 ViewController 호출(present)

다른 ViewController를 Modal로 띄우는 방법입니다

다음 코드를 사용합니다

let vcName = self.storyboard?.instantiateViewController(withIdentifier: "vcStoaryBoardID")vcName?.modalTransitionStyle = .coverVertical
self.present(vcName!, animated: true, completion: nil)

위 코드에서 vcStoaryBoardID는 호출할 ViewController의 ID로

우측 바의 Identity Inspector에서 설정해주면 됩니다

그리고 다음과 같이 왼쪽ViewController에서 PresentVC 버튼을 클릭하면 보라색 ViewController를 띄우도록 했습니다

PresentVC 버튼 액션을 MainViewController에 연결하고 다음처럼 적어주었습니다

3. NavigationController 사용하여 화면전환(show == push)

Navigation Controller를 사용하여 화면이 전환됩니다.

이 방법으로 화면 전환을 하려면 먼저 Navigation Controller를 embed in 해주어야 합니다.

그 뒤에 다음과 같은 코드를 작성합니다.

let pushVC = self.storyboard?.instantiateViewController(withIdentifier: "vcStoaryBoardID")self.navigationController?.pushViewController(pushVC!, animated: true)

가운데 ViewController에서 Push VC 버튼을 클릭하면 노란색 ViewController가 push됩니다

push는 Navigation Stack에 쌓이는 방식이라고 합니다

4. 화면전환용 객체 Segue 사용

Segue를 사용하는 이 방식은 StoaryBoard 상에서 경로가 시각적으로 나타납니다.

이런식으로요

Push VC by Code 버튼을 누르면 파란색 ViewController를 띄우려고 합니다

그러기 위해선 ViewController끼리 연결해서 Segue를 생성해주어야 합니다.

그 뒤에 Segue의 ID를 정해줍니다

StoryBoard Segue의 identifier 부분

그 뒤에 ViewController에 버튼을 연결하여 코드를 작성해줍니다

이 Segue 종류에는 두 가지(Action Segue, Manual Segue)가 있고

ViewController를 나타내는 방법에는 5가지가 있습니다.

이건 다음 포스트에 알아보겠습니다.

이상입니다.

--

--