본문 바로가기

iOS/STUDY

[iOS] UITabBarController, UITabBar

UITabBarController

A container view controller that manages a multiselection interface, where the selection determines which child view controller to display.

다중 선택 인터페이스를 관리하는 container view controller로, 선택에 따라서 보여질 child view controller가 결정됩니다.

Declaration

@MainActor class UITabBarController : UIViewController

이 클래스는 일반적으로 그대로 사용되지만 서브 클래스로 사용될 수도 있습니다.

 

Tab bar 인터페이스는 화면 아래 쪽에 탭으로 보여집니다.

사용자가 특정 탭을 선택하면 TabBarViewController는 선택한 ViewController에 해당하는 Root 뷰를 보여줍니다.

Tab bar 인터페이스는 일반적으로 다른 정보를 표시하거나 완전히 다른 스타일의 인터페이스를 사용하여 보여주는데 사용됩니다.

 

시계 앱에서 제공하는 Tab Bar 인터페이스들

TabBarController의 Tab bar View에 직접 접근하면 안됩니다.

왜지

TabBarController의 탭들을 구성하려면 각 탭에 대한 Root View를 제공하는 뷰 컨트롤러를 viewControllers 속성에 할당합니다.다.

??

 

ViewController를 지정하는 순서에 따라 Tab Bar에 표시되는 순서가 결정됩니다.

selectedViewController 속성이나 selectedIndex 속성을 사용하여 처음 선택된 뷰컨트롤러를 나타낼 수 있습니다.

 

UITabBarControllerDelegate

Delegate를 사용하여 특정 탭 항목이 선택되지 않도록 할 수 있고, 탭이 선택될 때 추가 작업을 수행할 수 있습니다.

그리고 Navigation Controller에서 수행한 탭 변경 사항을 모니터링 할 수도 있습니다. 

 

 


UITabBar

A control that displays one or more buttons in a tab bar for selecting between different subtasks, views, or modes in an app.
앱의 다른 서브태스크, 뷰 또는 모드 중에서 선택하기 위해 탭바에 하나 이상의 버튼을 표시해주는 컨트롤 입니다.

Declaration

@MainActor class UITabBar : UIView

UIView를 상속받는.. UIButton일줄 알았는데

 

일반적으로는 UITabBarController와 함께 탭바를 사용하지만, 독립 실행형 컨트롤로 사용할 수도 있습니다.

탭바는 항상 뷰 하단 가장자리에 나타나며 하나 이상의 내용을 보여줍니다. 탭바의 모양은 인터페이스의 요구 사항에 맞게 배경 이미지 또는 색상으로 설정할 수 있습니다. 

항목을 탭하면 해당 항목이 선택되고 강조 표시가 되며 앱에 해당하는 모드를 활성화합니다.

 

 

UITabBar 클래스와 UIToolbar 클래스는 비슷하게 생겼지만 다른 목적을 가지고 있습니다. 앱의 모드를 바꿀꾸려면 탭바를 사용합니다. 현재 표시된 컨텐츠와 관련된 작업을 제공하려면 Toolbar를 사용합니다.

 

직접 만든 탭바의 경우 UITabBarDelegate 를 사용하여 선택에 응답하거나 탭바에서 항목을 추가, 제거, 재정렬 할 수 있습니다.

 

Tab bar 아이템 구성하기

Interface Builder 에서 탭바 구성 - Segue를 사용하여 항목을 추가합니다.

프로그래밍 방식으로 탭바를 구성할 경우 tabBarItem 을 만들어서 setItems(_:animated:) 함수로 탭바를 지정합니다.

 

Tab 선택에 응답

탭바를 선택했을 때 변경 사항에 응답하는 메서드

tabBar(_:didSelect:)delegateUITabBarDelegate

 

 

 

 

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

 

Apple Developer Documentation

 

developer.apple.com

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

 

Apple Developer Documentation

 

developer.apple.com