화면전환의 방식
1. ViewController의 View위에 다른 View를 가져와 바꾸기
2. Navigation Controller사용(push, pop)
3. ViewContoller에서 다른 ViewController호출(present, dismiss)
4. segue를 사용해서 화면전환
NavigationController 구조
![](https://blog.kakaocdn.net/dn/mwyiN/btrnyHSbspd/LBeGzh4GpCjRDFSLNGIGFK/img.png)
Navigation Controller의 주요 역할은 컨텐츠 뷰 컨트롤러를 보여주고, 사용자 정의뷰(네비게이션 바 또는 툴바) 두 가지를 보여주는 것이다. 네비게이션 바는 뒤로가기 버튼과 커스터마이징 버튼을 추가 가능하고 툴바 뷰도 제공한다.
Navigation Controller 사용(story board에서 적용)
1. Editor의 Embed In의 Navigation Controller를 추가한다.
![](https://blog.kakaocdn.net/dn/bLKtnL/btrnxlBSRet/52nUiti9g6SFQhL53qe4X0/img.png)
2. 또다른 ViewController를 추가한 뒤 Button을 하나 생성해서 생성한 ViewController로 드래그한다
![](https://blog.kakaocdn.net/dn/bayk5w/btrnAikiaTi/SArqLE7sTJqKwCUWkqqig1/img.png)
3. Show를 적용해 Navigation을 설정한다.
![](https://blog.kakaocdn.net/dn/cwS5hk/btrnxl9HPqG/XQNsKY3uOwLYFdC4hbwCRK/img.png)
생성한 ViewController에도 자연스럽게 Navigation bar가 생기고 ViewController간 화면이동이 가능하다.
![](https://blog.kakaocdn.net/dn/8369U/btrnwz8am48/QU7zHOIZIhSkQUXZ5hiy10/img.png)
# Storyboard말고 코드에서의 적용
let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "vcStoryboardID")
self.navigationController?.pushViewController(nextViewController, animated: true)
ViewContoller에서 다른 ViewController호출
다른 ViewController를 Modal형식으로 띄우는 방법이다.
storyboard에서 적용
위의 방식과 비슷하게 ViewController를 하나 생성한 뒤 버튼을 드래그하여 Present Modally를 적용한다.
![](https://blog.kakaocdn.net/dn/cXDzEJ/btrnBsmaCn7/eoCIq9Qk74rL0TwvKxwgCk/img.png)
![](https://blog.kakaocdn.net/dn/nD7CT/btrnAY0ciaT/za1RnDoIQcxFZsGqjg303k/img.png)
# 코드로 적용
let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "vcStoaryboardID")
nextViewController?.modalTransitionStyle = .coverVertical self.present(nextViewController!, animated: true, completion: nil)
segue를 사용해서 화면전환
segue를 사용하는 방법은 두가지가 있다.
1. ViewController에 segue를 연결시켜 코드상에서 segue를 호출하여 목적지 ViewController호출
2. Button등 Action을 가지는 UIObject에 직접 연결(storyboard에서 처리하므로 따로 코드호출 필요X)
# ViewController에 segue를 연결시켜 코드상에서 segue를 호출하여 목적지 ViewController호출
새로 생성한 ViewController의 Connection Inspector를 눌러 Present Modally를 ViewController와 연결
![](https://blog.kakaocdn.net/dn/beSURZ/btrnAiLolg3/qLhdiEYHjcjMYxQRGjNKX0/img.png)
segue Identifier설정
![](https://blog.kakaocdn.net/dn/Afmo8/btrnBtyBW6R/K2682uLjkdmoiN9wkcK7Uk/img.png)
ViewController에 Button을 추가하고 performSegue에 segue Identifier를 연결
![](https://blog.kakaocdn.net/dn/bpAjCl/btrnwAlKbOz/JWeqADOZiKkdo52c9uDTI1/img.png)
'iOS 기초' 카테고리의 다른 글
iOS 디렉토리 구조 (0) | 2022.01.18 |
---|---|
Frame, Bounds (0) | 2021.12.13 |
AppDelegate, SceneDelegate (0) | 2021.12.10 |
init(frame:), required init?(coder: NSCoder), awakeFromNIb() (0) | 2021.12.07 |
Nib, Xib (0) | 2021.12.07 |