iOS 개발/iOS

[iOS] UINavigationController

도지대디 2022. 6. 30. 22:42

[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://tong94.tistory.com/26

 

[iOS] UINavigationController 에 대해

안녕하세요. 이래저래 많은 일들이 있어서 그동안 포스트를 소홀히 했는데, 이제 다시 꾸준히 해보려고 합니다. 오늘은 UINavigationController 에 대해 알아보려고 합니다. UINavigationController 는 제가

tong94.tistory.com

https://www.zehye.kr/ios/2020/03/13/iOS_vc_navigation_vc/

 

UINavigationController와 UIViewController 차이점 · 지혜의 개발공부로그

UINavigationController와 UIViewController 차이점 13 Mar 2020 | iOS 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다. NavigationController 계층구조로 구성된 content를 순차적으로

www.zehye.kr

https://developer.apple.com/documentation/uikit/uinavigationcontroller

 

Apple Developer Documentation

 

developer.apple.com

 

'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