YunDaeHyeon
← Lab

TabBarController와 UITabBar

스터디2025.08.14
  • UIKit

📌 UITabBarController에 대해

[iOS] UITabBarController 코드로 만들기

UITabBarController | Apple Developer Documentation

이미지 출처 : Apple - UITabBarController 공식 문서 https://developer.apple.com/documentation/uikit/uitabbarcontroller

UITabBarController는 하나 이상의 VC를 탭 바 항목으로 구성하고 사용자가 탭을 전환하면 해당 VC의 root view를 보여주는 Container ViewController이다.

위 이미지를 보면 UI 하단에 탭 바(Tab Bar)가 존재하는 것을 볼 수 있다.

해당 탭바를 사용하여 서로 다른 섹션이나 비즈니스 기능으로 구성된 뷰들을 하나의 앱에서 쉽게 전환할 수 있다.

  • 컨테이너 VC이므로 자식 VC 관리를 할 수 있다.
  • 표시 가능한 각각의 탭에 대해 개별 VC를 할당하고, viewControllers 프로퍼티 등을 통해 관리할 수 있다.
  • ⭐ 즉, 각각의 탭은 서로 다른 VC를 의미한다!
  • 사용자가 탭 바에서 항목을 선택할 때마다 선택된 VC만 활성화되고, 나머지는 비활성화 된다.
  • ⭐ 메모리에서 사라지는게 아니다!
  • 사용자가 순서를 정한다면 그 순서대로 탭 바에 보인다.
  • 실행했을 때 첫 화면을 어떤 탭으로 할지 정하고 싶다면 selectedViewController 프로퍼티나 selectedIndex 프로퍼티를 지정하면 된다.

아래 그림은 공식 문서에서 제공하는 전체적인 탭 바 인터페이스의 뷰를 나타낸다.

이미지 출처 : Apple - UITabBarController 공식 문서 https://developer.apple.com/documentation/uikit/uitabbarcontroller

The More Navigation Controller

JK님이 말씀해주신 부분이 공식문서에 잘 나와있다.

TabBar는 한정된 공간을 가지고 있으므로 6개 이상의 탭 바 아이템(커스텀 VC)가 존재한다면 먼저 추가된 4개가 순서대로 보인다. 그 후 마지막에 ... 처럼 More item이라고 표시된다.


🤔 UITabBar와 UITabBarController는 어떤 차이가 있을까?

UITabBar | Apple Developer Documentation

  • UITabBarController는 컨테이너 VC이다.
  • UITabBar는 아래 사진 하단에 있는 실제 탭 바 UI 컴포넌트를 말한다!

UITabBar는 UITabBarController 내부에 기본적으로 포함되어 있는 하위 뷰 이다.

  • 각 탭 버튼(UITabBarItem)을 표시하고, 각각의 아이템을 선택했을 때 발생되는 이벤트들을 컨트롤러에 전달한다.