본문 바로가기

iOS/UIKit

iOS - TabBarController

스토리보드로 텝바 컨트롤러를 만들어보자 

 

그냥 라이브러리에서 텝바 컨트롤러 가져오면 된다 

처음은 2개의 뷰가있다 

뷰를 추가해보자 

viewController 가져오고 TabBarController 와 연결해준다

 

 

TabBar item도 추가해주자

 

 

그리고 처음에 ViewController를 지우고 새롭게 TabBarController  만들었기 때문에 class 를 바꿔주고 다시 연결해줘야 한다.

 

 

4개의 뷰를 가진 텝바컨트롤러

 

이제 스토리보드 없이 만들어보자

 

앞서 했던 sceneDelegate 기본셋팅을 하고 스토리보드도 삭제해준다. 

MyViewController 에서 다음같이 코드를 작성했다

 

class MyViewController: UIViewController {
    
    convenience init(title : String, bgColor : UIColor) {
        self.init()
        self.title = title
        self.view.backgroundColor = bgColor
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }


}

 

convenience init 을 몰라서 알아보았다. 

보조 이니셜라이저(특정 타입의 인스턴스 생성)라고 한다.

그래서 convenience init 사용하려면 Designated init 이 선언되어야 한다고 한다. 

 

그리고 MainTabBarController 를 만들었다

 

class MainTabBarController : UITabBarController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        print("MainTabBarController - viewDidLode() called")
        
        let firstNC = UINavigationController.init(rootViewController: MyViewController(title: "첫번째", bgColor: UIColor.blue))
        let SecondNC = UINavigationController.init(rootViewController: MyViewController(title: "두번째", bgColor: UIColor.red))
        let thridNC = UINavigationController.init(rootViewController: MyViewController(title: "세번째", bgColor: UIColor.yellow))
        let forthNC = UINavigationController.init(rootViewController: MyViewController(title: "네번째", bgColor: UIColor.white))
        let fifthNC = UINavigationController.init(rootViewController: MyViewController(title: "다섯번째", bgColor: UIColor.purple))
        
        //위에 정의한거 하나씩 넣어줌
        self.viewControllers = [firstNC, SecondNC, thridNC, forthNC, fifthNC]
        
        // 템바 항목 만들어주기
        //systemName 자체로 제공한는 이미지 사용가능
        let firstTabBarItem = UITabBarItem(title: "첫번째", image: UIImage(systemName: "airplayaudio"), tag: 0)
        let SecondTabBarItem = UITabBarItem(title: "두번째", image: UIImage(systemName: "airplayaudio"), tag: 1)
        let thridTabBarItem = UITabBarItem(title: "세번째", image: UIImage(systemName: "airplayaudio"), tag: 2)
        let forthTabBarItem = UITabBarItem(title: "네번째", image: UIImage(systemName: "airplayaudio"), tag: 3)
        let fifthTabBarItem = UITabBarItem(title: "다섯번째", image: UIImage(systemName: "airplayaudio"), tag: 4)
        
        // 만들어준 템바 아이템 설정
        firstNC.tabBarItem = firstTabBarItem
        SecondNC.tabBarItem = SecondTabBarItem
        thridNC.tabBarItem = thridTabBarItem
        forthNC.tabBarItem = forthTabBarItem
        fifthNC.tabBarItem = fifthTabBarItem 
    }
}

 

 

'iOS > UIKit' 카테고리의 다른 글

iOS - 프로젝트세팅, SceneDelegagte  (0) 2022.06.30
iOS - 컴플레션 블럭  (0) 2022.06.28
iOS - 스택자료구조  (0) 2022.06.28