안녕하세요 에밀리입니다
iOS에서 화면 전환하는 법을 알아보겠습니다.
화면 전환 방법 네 가지
- ViewController의 view를 바꿔치기
- ViewController가 다른 ViewController 호출(present)
- NavigationController 사용하여 화면전환(push)
- 화면전환용 객체 Segue 사용
하나씩 살펴보겠습니다
- 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가지가 있습니다.
이건 다음 포스트에 알아보겠습니다.
이상입니다.