본문 바로가기

iOS 개발/Apple App Store 클론 코딩

AppleAppStore - 2. TabBar 구현

반응형

안녕하세요. Skillist입니다.

 

오랜만에 글 작성해요.

이런저런 일도 있었고, AppStore 클론코딩에 집중하느라, 글을 못쓰고 있었어요.

어쨋든 안궁금하시죠? 그럼 시작해봅시다.

 

하단에 세개의 탭이 보이죠? 이를 구현해보겠습니다.

 

저는, 스토리보드를 사용하지 않을것이기 때문에, 스토리보드 삭제했고, SceneDelegate를 수정해볼게요

 

윈도우와 rootViewController를 설정했습니다.

 

---------------------------------------------------------------------------------------------------------------------

 

다음으론, TabBarController입니다.

15, 19라인 : 다크모드를 위해서 탭바의 색상을 지정하고 틴트 컬러를 설정합니다. 

 

16, 24라인 : 탭바 아이템을 설정합니다. VC에 대한 TabBarItem을 설정했습니다

 

그럼 이렇게 탭바 구성이 짜잔~~

이번 글은 간단하게 끝내겠습니다.

다음에 또 봐요

 

 

잘못되거나 부족한 내용 등, 피드백 감사합니다!

 

Skillist의 AppleAppStore 프로젝트

https://github.com/DeveloperSkillist/AppleAppStoreCloneCode

 

GitHub - DeveloperSkillist/AppleAppStoreCloneCode: AppleAppStoreCloneCode

AppleAppStoreCloneCode. Contribute to DeveloperSkillist/AppleAppStoreCloneCode development by creating an account on GitHub.

github.com

 

 

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓  전체 코드  ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

 

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }
        window = UIWindow(windowScene: windowScene)
        window?.rootViewController = RootTabBarViewController()
        window?.makeKeyAndVisible()
    }
}
class RootTabBarViewController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        setupTabBar()
        setupTabBarItem()
    }
    
    func setupTabBar() {
        tabBar.barTintColor = .systemBackground
        tabBar.tintColor = .link
    }
    
    func setupTabBarItem() {
        let todayViewController = TodayCollectionViewController(collectionViewLayout: UICollectionViewFlowLayout())
        todayViewController.tabBarItem = UITabBarItem(
            title: "today_title".localized,
            image: UIImage(systemName: "doc.richtext"),
            selectedImage: UIImage(systemName: "doc.richtext.fill")
        )
        
        let appViewController = UINavigationController(rootViewController: AppViewController())
        appViewController.tabBarItem = UITabBarItem(
            title: "app_title".localized,
            image: UIImage(systemName: "gamecontroller"),
            selectedImage: UIImage(systemName: "gamecontroller.fill")
        )
        
        let searchViewController = UINavigationController(rootViewController: SearchViewController())
        searchViewController.tabBarItem = UITabBarItem(
            title: "search_title".localized,
            image: UIImage(systemName: "magnifyingglass"),
            selectedImage: UIImage(systemName: "magnifyingglass"))
        
        viewControllers = [
            todayViewController,
            appViewController,
            searchViewController
        ]
    }
}
반응형