UINavigationController

Eli·2021년 2월 8일
1

iOS

목록 보기
5/11

애플 문서

iOS에서 화면전환에는 크게 3가지 방법이 있다.
1. self.view를 갈아치우기: 위험하고 권장되지 않는 사항이므로 따로 다루진 않겠다.
2. UINavigationController: 이번에 다룰 네비게이션 방식 (기본으로 왼쪽에서 오른쪽으로 슬라이드 됨)
3. Modal present: 네비게이션처럼 흐름을 따라 넘어간다기보단 다른 화면위로 새로 띄워 표현하는 방식 (기본으로 아래에서 위로 올라옴)

거의 모든 앱에서 사용되고 있으며, 대부분의 화면 전환은 Navigation으로 이루어지고 있습니다.

ViewController의 화면들이 Stack으로 쌓여있으며, 최 하단에 있는 VC는 RootViewController

최상단에 있는 것은 현재 화면에 보이고 있는 화면이다.

아래와 같이 Stack으로 화면들이 순차적으로 관리될 수 있다.

Navigation Controller에 Bar 와 Toolbar가 기본적으로 제공이 된다.

기본적으로 BarButtonItem이라는 버튼 등을 사용해야돼서 커스텀하기가 귀찮을 때가 많다.

구현하고자 하는 목표에 따라 적절히 사용하면 좋을 듯 하다.

Bar

  • Default로 보이도록 설정
  • left Item. center Item, right Item이 있다.
  • left Item은 Root가 아닐 경우엔 뒤로가기 버튼이 제공.
  • center Item은 ViewController의 타이틀이 제공된다.
  • right Item은 없는 것이 기본이다.
  • 위의 모든 옵션들을

Toolbar

  • Default가 안보이도록 설정
  • bar button item들을 추가할 수 있다.
  • 그러나 최근 Mobile 트렌드에선 잘 사용하지 않는 UX이므로 사용 할 일이 들물다.

Basic Usage

//네비게이션 컨트롤러를 띄우기
let navigationController = UINavigationController(rootViewController: RootViewController())

self.present(navigationController, animated: true, completion: nil)

//새로운 view stack 쌓으면서 뷰 이동
let firstStackVC: FirestStackVc()
self.navigationController?.pushViewController(firstStackVC, animated: true)

//해당 뷰에서 뒤로가기
self.navigationController?.popViewController(animated: true)

뭐지 생각보다 둘러볼 내용이 많을 것 같아서 정리를 시작했는데 크게 더 정리할 내용은 없어보이네...

profile
애플을 좋아한다. 그래서 iOS 개발을 한다. @Kurly

0개의 댓글