본문 바로가기

iOS 개발/Unsplash 클론 코딩

Unsplash - 3. SceneDelegate와 TabBarController

반응형

안녕하세요. Skillist 입니다.

 

바로 시작해볼까요.

 

우린, 스토리 보드를 사용하지 않을거니, 코드로 앱 화면 연결해줄게요

우선 세팅부터 해줘야 해요.

 

Main.스토리보드를 삭제해주세요.

그래도 되냐구요? 네, 되더라구요.

 

Move to Trash를 선택해서 파일 자체를 삭제 하면 돼요.

 

그리고 Info.plist에서 스토리 보드 name 항목을 지워주세요.

 

그리고 프로젝트에서 타겟으로 이동하여 Main interface를 삭제 해주세요.

프로젝트에 대한 설정은 다 했어요.

 

SceneDelegate로 이동하실게요~

SceneDelegate에 주석이 많은데 다 삭제 했구어요.

window를 생성하여, rootViewController을 지정하고, makeKeyAndVisible을 했습니다.

 

- 구글 번역

이것은 현재 창을 표시하고 동일한 수준 이하의 다른 모든 창 앞에 배치하는 편리한 방법입니다.
창만 표시하려면 isHidden 속성을 false로 변경하십시오.

 

앱 실행 후 먼저 보여줘야할(rootViewController) viewController를 지정하여 보여줬습니다(makeKeyAndVisible).

 

TabBarController는 제가 생성한 클래스인데요. 바로 볼까요.

 

TabBarcontroller가 viewDidLoad하면, 탭바 레이아웃 설정과 탭바 아이템들을 설정합니다.

탭바 레이아웃을 검정색으로, tint 컬러를 하얀색으로 설정해줬구요,

"Photo"와 "Account"라는 탭바 아이템을 설정 해줬어요. 다음과 같이 말이죠.

 

탭바 아이템에 대한, ViewController는 다음에 천천히 알아볼게요

 

Skillist의 Unsplash 프로젝트

https://github.com/DeveloperSkillist/UnsplashCloneCode

 

GitHub - DeveloperSkillist/UnsplashCloneCode: UnsplashCloneCode

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

github.com

 

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

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?.backgroundColor = .systemBackground
        window?.rootViewController = TabBarController()
        window?.makeKeyAndVisible()
    }
class TabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        setupTabbarLayout()
        setupTabbarItem()
    }
    
    private func setupTabbarLayout() {
        //tabbar 아이템의 틴트 컬러 변경
        tabBar.tintColor = .white
        
        //tabbar 컬러 변경
        tabBar.barTintColor = .black
    }
    
    private func setupTabbarItem() {
        //TabBar의 아이템 설정
        
        //photo Tab
        let photoListViewController = PhotoListViewController()
        photoListViewController.tabBarItem = UITabBarItem(
            title: "Photo",
            image: UIImage(systemName: "photo"),
            selectedImage: UIImage(systemName: "photo.fill")
        )
        
        //account Tab
        let accountViewController = AccountNavigationController(rootViewController: LoginViewController())
        accountViewController.tabBarItem = UITabBarItem(
            title: "Account",
            image: UIImage(systemName: "person.crop.circle"),
            selectedImage: UIImage(systemName: "person.crop.circle.fill")
        )
        
        viewControllers = [
            photoListViewController,
            accountViewController
        ]
    }
}
반응형