[iOS] UINavigationController
Navigation Controller 는 1개 이상의 자식 View Controller 를 관리하는 컨테이너 View Controller 입니다.
한번에 하나의 자식 View Controller 만 화면에 나타낼 수 있으며, View Controller 에서 아이템을 선택하면 애니메이션을 이용해 새로운 View Controller 을 화면에 표시하고, 원래 화면에 존재하던 View Controller 는 가려지게 됩니다.
화면 상단의 Navigation Bar 에 있는 Back 버튼을 누른다면 현재 표시되고 있는 View Controller 는 화면에서 제거되고 그 아래 있던 View Controller 가 표시됩니다.
- Navigation Stack 이라는 스택을 사용해 View Controller 관리
- Stack 은 LIFO 성질을 가지고 있기 때문에 가장 나중에 나타난 View Controller 가 가장 빨리 사라짐
- 계층구조로 구성된 데이터를 화면에 표시하는데 적절함
- 한번에 하나의 자식 View Controller 만 화면에 나타낼 수 있음
Navigation Controller Views
Navigation Controller 는 다른 View 를 포함하는 Container View Controller 이기 때문에 다른 View Controller 의 내용을 내부에 포함합니다.
현재 화면에 표시되고 있는 View 에 접근하기 위해 view 프로퍼티를 이용할 수 있습니다.
Navigation Controller 를 이용해 표시되는 화면의 최상단에는 Navigation Bar 가 존재하고, 하단에는 선택적으로 ToolBar 를 표시할 수 있습니다. 이들은 Navigation Bar 에 의해 생성, 설정, 표시 등이 관리됩니다.
Navigation Bar 에는 Title, Back Button, Bar Button 등의 아이템들이 포함됩니다. 굳이 UI 를 추가하거나 설정하지 않아도 해당 View Controller 에서 제공하는 컨텐츠를 이용해 Navigation Bar 를 사용할 수 있습니다.
Navigation Bar 의 모양을 커스텀하여 바꿀수는 있지만, Frame, Bounds, 혹은 Alpha 값은 직접 변경해서는 안됩니다. 또한 Navigation Bar 를 상속받으려면 init(navigationBarClass:toolbarClass:) 를 이용해 Navigation Controller 를 초기화시켜야 합니다.
ToolBar 는 Safari 앱의 하단과 같이 여러 버튼을 모아둔 것입니다. isToolBarHidden 프로퍼티는 기본적으로 true 로 설정되어 있는데, 이를 false 로 설정해주면 화면 하단에 ToolBar 를 표시할 수 있습니다.
참고 링크
https://www.zehye.kr/ios/2020/03/13/iOS_vc_navigation_vc/
https://developer.apple.com/documentation/uikit/uinavigationcontroller
'iOS 개발 > iOS' 카테고리의 다른 글
[iOS] 메모리 구조 (0) | 2022.07.12 |
---|---|
[iOS] Delegate Pattern (0) | 2022.07.06 |
[iOS] 앱 생명주기 (App LifeCycle) (0) | 2022.06.24 |
[iOS] Frame & Bounds (0) | 2022.06.17 |
[iOS] UITableView & UICollectionView (0) | 2022.06.17 |