iOS 기초

iOS 화면전환

motosw3600 2021. 12. 10. 16:18

화면전환의 방식

1. ViewController의 View위에 다른 View를 가져와 바꾸기

2. Navigation Controller사용(push, pop)

3. ViewContoller에서 다른 ViewController호출(present, dismiss)

4. segue를 사용해서 화면전환

 

NavigationController 구조

 

Navigation Controller의 주요 역할은 컨텐츠 뷰 컨트롤러를 보여주고, 사용자 정의뷰(네비게이션 바 또는 툴바) 두 가지를 보여주는 것이다. 네비게이션 바는 뒤로가기 버튼과 커스터마이징 버튼을 추가 가능하고 툴바 뷰도 제공한다.

Navigation Controller 사용(story board에서 적용)

1. Editor의 Embed In의 Navigation Controller를 추가한다.

 

2. 또다른 ViewController를 추가한 뒤 Button을 하나 생성해서 생성한 ViewController로 드래그한다

 

 

3. Show를 적용해 Navigation을 설정한다.

 

 

생성한 ViewController에도 자연스럽게 Navigation bar가 생기고 ViewController간 화면이동이 가능하다.

 

 

# Storyboard말고 코드에서의 적용

 

let nextViewController = self.storyboard?.instantiateViewController(withIdentifier: "vcStoryboardID")
self.navigationController?.pushViewController(nextViewController, animated: true)

 


ViewContoller에서 다른 ViewController호출

다른 ViewController를 Modal형식으로 띄우는 방법이다.

storyboard에서 적용

위의 방식과 비슷하게 ViewController를 하나 생성한 뒤 버튼을 드래그하여 Present Modally를 적용한다.

 

 

# 코드로 적용

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와 연결

 

segue Identifier설정

 

ViewController에 Button을 추가하고 performSegue에 segue Identifier를 연결

 

'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