[iOS] 코드로 TabBar 만들기

Zoe·2023년 3월 12일

🧼 UIKit

목록 보기
2/6
post-thumbnail

UITabBar에 대한 내용을 다시 공부해서 정리할 예정이지만,
프로젝트 진행하면서 기억해둘 것은 미리미리 적자고 다짐해서 코드만 적어본다..!

SceneDelegate

 guard let windowScene = (scene as? UIWindowScene) else { return }
 window = UIWindow(windowScene: windowScene) // SceneDelegate의 프로퍼티에 설정해줌
        
let mainTabBarController = MainTabBarController()// 맨 처음 보여줄 ViewController

window?.rootViewController = mainTabBarController
window?.makeKeyAndVisible()
window?.windowScene = windowScene

MainTabBarController

 override func viewDidLoad() {
        super.viewDidLoad()
        
        self.tabBar.backgroundColor = UIColor.white
                
        let mapNC = UINavigationController.init(rootViewController: MapViewController())
        let mainNC = UINavigationController.init(rootViewController: MainViewController())
        let mypageNC = UINavigationController.init(rootViewController: MypageViewController())

        self.viewControllers = [mapNC,mainNC,mypageNC]
                
        let mapTabBarItem = UITabBarItem(title: " ", image: UIImage(named: "map"), tag: 0)
        let mainTabBarItem = UITabBarItem(title: " ", image: UIImage(named: "home"), tag: 1)
        let mypageTabBarItem = UITabBarItem(title: " ", image: UIImage(named: "mypage"), tag: 2)
                
        mapNC.tabBarItem = mapTabBarItem
        mainNC.tabBarItem = mainTabBarItem
        mypageNC.tabBarItem = mypageTabBarItem
        
        self.selectedIndex = 1 // 원하는 인덱스
        self.tabBar.backgroundColor = UIColor(named: "Dark Color")
        // Do any additional setup after loading the view.
    }

첫 시작 페이지를 설정하길 원하면

self.selectedIndex = 1 // 원하는 인덱스

View 생성 시 backgroundColor와 title을 설정

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

0개의 댓글