iOS. 네비게이션 컨트롤러

2019. 7. 30. 16:09Swift + iOS

Navigation Controller

  • 내비게이션 스택(navigation stack)을 사용하여 다른 뷰 컨트롤러를 관리한다.
  • 컨텐트 뷰 컨트롤러(content view controller)
    • 내비게이션 스택(navigation stack)에 담겨서 콘텐츠를 보여주게 되는 뷰 컨트롤러들
  • 내비게이션 컨트롤러는 두 개의 뷰를 화면에 표시한다.
    • 내비게이션 스택뷰에 포함된 최상위 컨텐트 뷰 컨트롤러의 콘텐츠를 나타내는 뷰
    • 내비게이션 컨트롤러가 직접 관리하는 뷰(내비게이션바 또는 툴바)
    • 한 번에 하나의 자식 뷰 컨트롤러를 보여준다.
  • 내비게이션 델리게이트 객체 사용
    • 인터페이스의 변화에 따른 특정 액션을 동작하도록 한다.

 

네비게이션 컨트롤러가 표시하는 뷰

 

화면 전환

네비게이션 스택에 뷰 컨트롤러를 추가/삭제 해서 화면을 전환할 수 있다.

  • UINavigationController 클래스의 메서드, segue를 이용한다.

네비게이션 스택 (Navigation Stack)

  • 뷰 컨트롤러를 담을 수 있는 배열과 같다.
  • 네비게이션 컨트롤러에 의해 관리된다.
  • push: 새로운 UIViewController 인스턴스를 생성해 네비게이션 스택에 추가한다.
  • pop: UIViewController` 의 인스턴스가 다른 곳에서 참조되고 있지 않다면 메모리에서 해제하고 네비게이션 스택에서 제거한다.
  • Root VC: 네비게이션 스택의 가장 하위에 있는(가장 먼저 스택에 추가된) 뷰 컨트롤러
    • 루트 뷰 컨트롤러는 내비게이션 스택에서 팝(pop)되지 않는다.
  • Top VC: 네비게이션 스택의 가장 상위에 있는(가장 마지막에 푸시(push) 된) 뷰 컨트롤러
    • 화면에 보여지는 뷰

 

네비게이션바

  • 네비게이션바는 네비게이션 컨트롤러에 의해 생성된다.
  • 네비게이션바는 네비게이션 컨트롤러의 관리를 받는 모든 뷰 컨트롤러의 상단에 표시된다.
  • 현재 데이터 계층에서 어느 위치에 있는지 보여준다.
  • Top 뷰 컨트롤러가 변경될 때마다 네비게이션 컨트롤러는 네비게이션바를 업데이트 한다.

 

 


Reference

 

부스트코스 iOS - https://www.edwith.org/boostcourse-ios/lecture/16857/

 

'Swift + iOS' 카테고리의 다른 글

Swift. 클로저(Closures)  (0) 2019.05.07
Swift. Extension  (0) 2019.04.25
Xcode. Xcode 디버깅 팁  (7) 2019.04.22
Swift. 옵셔널  (0) 2019.04.18