← Lab
TabBarController와 UITabBar
스터디2025.08.14
- UIKit
📌 UITabBarController에 대해
[iOS] UITabBarController 코드로 만들기
UITabBarController | Apple Developer Documentation

UITabBarController는 하나 이상의 VC를 탭 바 항목으로 구성하고 사용자가 탭을 전환하면 해당 VC의 root view를 보여주는 Container ViewController이다.
위 이미지를 보면 UI 하단에 탭 바(Tab Bar)가 존재하는 것을 볼 수 있다.
해당 탭바를 사용하여 서로 다른 섹션이나 비즈니스 기능으로 구성된 뷰들을 하나의 앱에서 쉽게 전환할 수 있다.
- 컨테이너 VC이므로 자식 VC 관리를 할 수 있다.
- 표시 가능한 각각의 탭에 대해 개별 VC를 할당하고, viewControllers 프로퍼티 등을 통해 관리할 수 있다.
- ⭐ 즉, 각각의 탭은 서로 다른 VC를 의미한다!
- 사용자가 탭 바에서 항목을 선택할 때마다 선택된 VC만 활성화되고, 나머지는 비활성화 된다.
- ⭐ 메모리에서 사라지는게 아니다!
- 사용자가 순서를 정한다면 그 순서대로 탭 바에 보인다.
- 실행했을 때 첫 화면을 어떤 탭으로 할지 정하고 싶다면
selectedViewController프로퍼티나selectedIndex프로퍼티를 지정하면 된다.
아래 그림은 공식 문서에서 제공하는 전체적인 탭 바 인터페이스의 뷰를 나타낸다.

The More Navigation Controller

JK님이 말씀해주신 부분이 공식문서에 잘 나와있다.
TabBar는 한정된 공간을 가지고 있으므로 6개 이상의 탭 바 아이템(커스텀 VC)가 존재한다면 먼저 추가된 4개가 순서대로 보인다. 그 후 마지막에 ... 처럼 More item이라고 표시된다.
🤔 UITabBar와 UITabBarController는 어떤 차이가 있을까?
UITabBar | Apple Developer Documentation
- UITabBarController는 컨테이너 VC이다.
- UITabBar는 아래 사진 하단에 있는 실제 탭 바 UI 컴포넌트를 말한다!

UITabBar는 UITabBarController 내부에 기본적으로 포함되어 있는 하위 뷰 이다.
- 각 탭 버튼(UITabBarItem)을 표시하고, 각각의 아이템을 선택했을 때 발생되는 이벤트들을 컨트롤러에 전달한다.