ios 17일차

bin·2026년 1월 21일

회고

제공된 강의를 다 듣고나서 실습을 통해 감을 익힐 필요가 있다고 생각했다. 웹, 앱을 공부하며 처음 시작했을 때 매번 하는 것이 특정 웹, 앱 클론 코딩이다. 이번에는 인스타그램 클론코딩을 통해 감을 익혀보기로 했다.

클론 코딩

1. 코드베이스 세팅

  • 어제와 마찬가지로 StoryBoard 연결을 끊어주고 SceneDelegate에 TabBarController를 연결해준다.
    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        guard let windowScene = (scene as? UIWindowScene) else { return }
        let window = UIWindow(windowScene: windowScene)
        
        window.rootViewController = TabBarController()
        window.makeKeyAndVisible()
        
        self.window = window
    }

2.TabBarController

  • TabBarController의 구성은 아래와 같다.
  • 생성된 각각의 Controller에 연결해줄 상수를 선언해주고, 속성을 정의해준다.
import UIKit
import SnapKit

class TabBarController: UITabBarController {
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let feedViewController = UINavigationController(rootViewController: FeedViewController())
        feedViewController.tabBarItem = UITabBarItem(
            title: nil,
            image: UIImage(systemName: "house"),
            selectedImage: UIImage(systemName: "house.fill"))
        
        let profileViewController = UINavigationController(rootViewController: ProfileViewController())
        profileViewController.tabBarItem = UITabBarItem(
            title: nil,
            image: UIImage(systemName: "person"),
            selectedImage: UIImage(systemName: "person.fill"))
        
        let searchViewController = UINavigationController(rootViewController: SearchViewController())
        searchViewController.tabBarItem = UITabBarItem(
            title: nil,
            image: UIImage(systemName: "magnifyingglass"),
            selectedImage: UIImage(systemName: "magnifyingglass.fill"))
        
        viewControllers = [feedViewController, profileViewController, searchViewController]
        
    }
}

0개의 댓글