[iOS - swift] 10. 탭 바 컨트롤러(tab bar controller)
1. 탭 바 컨트롤러 생성
- Contents Controller가 아닌 Container Controller(직저 콘텐츠를 표현하지 않으면서 다른 뷰 컨트롤러를 유기적인 관계로 제어)
- 수평적인 관계를 조정 (네비게이터 컨트롤러는 수직적 관계 조정)
- 화면 하단에 "Tab Bar"가 표시 됨
- 맨 앞에 존재 (네비게이터보다 앞에 위치)

1) 생성
- Tab Bar Controller 또는 [Embed In] -> [Tab Bar Controller]
2) 탭 바 컨트롤러에 특정 뷰 컨트롤러 연결
- tab bar controller을 연결하려는 view Controller에 드래그 앤 드랍
- view controllers선택 ("Relationship Segue"라고 함)
※ 탭 바의 순서를 바꾸려면 드래그하여 바꾸면 됨
3) 탭 바 아이템의 아이콘 삽입
- 탭 바 컨트롤러를 클릭하지 않고, 탭바와 연결 된 뷰 컨트롤러에서의 탭바 클릭
※ (개별 탭은 탭 바에 구현 되는 것이 아닌 각각의 뷰 컨트롤러에 구현되는 것)
- Attribute inspector창에서 "System Item"에서 정해진 아이콘 선택
- 직접 사진을 첨부하여 아이콘을 만들고 싶으면, Bar Item에서 Image선택

2. Tab Bar 델리게이트 패턴
- 다른 탭을 누른 경우, 이벤트 처리 방법 : UITabBarControllerDelegate 사용
1) 권한 위임
|
1
|
tabBarController?.delegate = self
|
2) 델리게이트 정의
|
1
2
3
4
5
6
7
|
extension ViewController: UITabBarControllerDelegate {
// excute when the tab is selected
func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) {
print("tab!!")
}
}
|