관리 메뉴

김종권의 iOS 앱 개발 알아가기

[iOS - swift] 10. 탭 바 컨트롤러(tab bar controller) 본문

iOS 기본 (swift)

[iOS - swift] 10. 탭 바 컨트롤러(tab bar controller)

jake-kim 2020. 4. 4. 20:22

1. 탭 바 컨트롤러 생성

- Contents Controller가 아닌 Container Controller(직저 콘텐츠를 표현하지 않으면서 다른 뷰 컨트롤러를 유기적인 관계로 제어)

- 수평적인 관계를 조정 (네비게이터 컨트롤러는 수직적 관계 조정)

- 화면 하단에 "Tab Bar"가 표시 됨

- 맨 앞에 존재 (네비게이터보다 앞에 위치)

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!!")
    }
}
 
 
 

 

Comments