iOS How to use a Navigation Controller

운영 체제: macOS Monterey 12.5
사용 버전: Xcode 13.4.1, Swift, UIKit, Storyboard

iOS How to use a Navigation Controller를 알아보겠습니다.


Navigation Controller는 View들을 쌓아서 현재 화면을 관리합니다. iOS에서 모달이 아니라 전체 화면이 다른 화면으로 변경되는 것이 Navigation Controller를 사용한 화면 전환입니다.

먼저 storyboard로 들어갑니다.





화면 두 개가 있습니다. 왼쪽에 있는 버튼을 누르면 오른쪽에 있는 화면으로 넘어가도록 만들어보겠습니다.


우측 상단의 더하기 모양의 Library 버튼을 누릅니다.







navigation controller를 검색합니다.






스토리보드에 추가해 줍니다.







그러면 이렇게 네 개의 뷰 컨트롤러가 존재하는데요. 여기서 두 번째 것을 제거합니다.






Navigation Controller에 마우스를 올리고 ctrl을 누른 다음 옆의 화면으로 드래그합니다. 그럼 아래와 같은 줄이 생깁니다.







마우스를 떼면 다음과 같은 선택 창이 나옵니다. root view controller를 누릅니다.

이것은 Navigation Controller가 처음 시작할 때 보일 초기 화면이라는 뜻입니다.






그다음, Navigation Controller를 누른 후, 오른쪽 화면에 Is Initial View Controller를 누릅니다.

이렇게 해야지 처음 시작할 때, Navigation Controller가 불러와집니다.







자... 여기서 다음 화면을 띄우는 방법은 3 가지가 있습니다.

1. 코드로 띄우기.

2. View Controller에 Segue를 연결 후, 코드로 띄우기.

3. Button에 Segue를 연결.




하나하나 봅시다.

1. 코드로 띄우기.



코드로 띄우려면 사전 작업이 필요합니다. 먼저 띄울 뷰 컨트롤러에 Storyboard ID를 설정합니다.

여기서는 SecondView라고 적었습니다.






버튼이 있는 ViewController로 갑니다.

17 번째 줄에 있는 버튼과 연결된 IBAction 함수에 다음과 같이 적습니다.

instantiateViewController는 스토리보드의 뷰 컨트롤러를 불러옵니다.

pushViewController는 navigationController에 View를 집어넣는 역할을 합니다.

뷰를 집어넣으면 Navigation Controller에 방금 집어넣은 뷰가 보이게 됩니다.







실행해 봅시다.







짜잔.




2. View Controller에 Segue를 연결 후, 코드로 띄우기.


스토리보드로 갑니다.

View Controller에 손을 대고 ctrl 키를 누르며 화면으로 드래그를 합니다.

그럼 아래와 같이 줄이 생깁니다.










손을 떼면 다음과 같은 선택 창이 나옵니다.

Show를 눌러줍니다.





가운데에 화살표가 생깁니다. 이 화살표가 Segue입니다.

Segue를 클릭해서 Identifier를 적어줍니다.

저는 ViewToSecondViewSegue로 적었습니다.








자, 이제 ViewController.swift 파일로 갑니다.

17 번째 줄에 performSegue를 적습니다.

우리가 적은 Segue의 Identifier를 사용하여 화면을 전환합니다.







실행해 봅시다.







짜잔.




자, 이제 마지막

3. Button에 Segue를 연결.


스토리보드를 엽니다.

이번엔 버튼에 마우스를 올리고 ctrl을 눌러서 끌어 놓습니다.









선택 창에서는 Show를 선택합니다.






코드에는 적을 게 없습니다.







실행합니다.





짜잔.


지금까지 Navigation Controller를 사용한 화면 전환 3 가지 방법을 알아봤습니다.


끝.


카테고리: iOS



댓글

이 블로그의 인기 게시물

Python OpenCV 빈 화면 만들기

Python urllib.parse.quote()

Python bytes.fromhex()

Android AVD Ram size change

Forensics .pyc 파일 .py로 복구하기

Android Minimum touch target size

KiCad 시작하기 7 (FreeRoute 사용하기 2)

Android Notification with Full Screen

C++ OpenCV 모폴로지 침식, 팽창

KiCad 시작하기 2 (PCB 만들기)