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