HypeDitto / iOS-Study

iOS 기술 면접 대비
0 stars 0 forks source link

UINavigationController 의 역할이 무엇인지 설명하시오. #28

Open YouHojoon opened 1 year ago

YouHojoon commented 1 year ago
  1. viewControllers: navigation controller 는 여러개의 view controller 를 관리할 수 있는 container view controller 이기 때문에 해당 navigation stack 에 쌓인 view controller 들을 배열 형태로 가지고 있습니다. 해당 배열은 push, pop 형태로 관리됩니다.
  2. navigationBar: 앱을 사용하다 보면 상단에 타이틀, 뒤로가기, 설정등 특정 영역에 UI 요소들이 배치된 경우를 볼 수 있는데, 해당 영역을 navigationBar라고 합니다. 해당 navigationBar 를 통해 굳이 UI를 추가하거나 세팅할 필요없이 해당 view controller 를 위한 UI를 설정할 수 있습니다.
  3. toolbar: 사파리 앱에서 흔히 아래쪽에 공유하기나 여러 버튼들이 모여있는 것을 볼 수 있는데, 이를 toolbar라고 합니다. 기본적으로 navigation controller 에서는 숨김처리 되어 있지만, 숨김을 해제하고 해당 영역을 설정할 수 있습니다.
  4. delegate: UITableViewDelegate 처럼 UINavigationController 에도 특정 Event에서 사용할 수 있는 delegate가 선언되어 있습니다. 보통 특정 view controller가 보여지거나, 이동간 애니메이션을 설정하기 위해 사용합니다.
HeegeePark commented 1 year ago

UINavigationController

A container view controller that defines a stack-based scheme for navigating hierarchical content.

→ 스택구조로 하위 뷰컨트롤러들을 감싸고 있는 컨테이너 뷰컨트롤러

네비게이션 컨트롤러는 navigation stack( ordered Array)를 가지고 있으며 스택 내부에는 child ViewController가 들어간다.

첫번째 뷰컨트롤러는 root 뷰컨롤러로 스택에 최하단에 위치하며 마지막 viewcontroller는 navigation stack의 최상단에 위치하며 현재 보여주고있는 present viewcontroller이다.