IOS

[iOS] - Storyboard 없이 프로젝트 생성하기

clamp 2023. 3. 26. 14:59

개발자로써 Storyboard없이 UI를 구성할 줄 알아야 한다고 느낀 후 코드로 UI를 작성하는 연습을 하고있다.

 

그래서 Storyboard 없이 프로젝트를 생성하는 방법에 대해 기록하려고 한다.

 

1. 프로젝트 생성

 

2. Main.storyboard 삭제

스토리보드를 삭제❌❌❌한다.

에러가 발생한다  Main스토리보드를 찾을 수 없으니까..

 

3. info.plist 수정

 

1. Storyboard Name을 삭제한다.

2. Main storyboard file base name을 찾아 삭제한다.

 

⭐️⭐️⭐️ 커맨드(command) + S 프로젝트 저장!!

 

4. 초기 ViewController(Root)을 지정한다.  파일명: SceneDelegate.swift

 

class SceneDelegate: UIResponder, UIWindowSceneDelegate {

    var window: UIWindow?


    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        
        guard let windowScence = (scene as? UIWindowScene) else { return }
        window = UIWindow(frame: windowScence.coordinateSpace.bounds)
        window?.rootViewController = UINavigationController(rootViewController: ViewController())
        window?.makeKeyAndVisible()
        window?.windowScene = windowScence
    }

 

5. ViewController의 배경 색상을 지정해서 잘 나오는지 확인해야한다.

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = .systemPink
    }

}

⭐️ 추가

스토리보드 없이 작업을 하다보면 뷰를 컨트롤러에서 분리시킬 수 있다.

그렇게 되면 컨트롤러의 상속받은 뷰를 커스텀한 뷰로 교체시켜야 하는데 이는 loadView()에서 할 수 있다.

 

또한 loadView()에서 다음과 같은 작업이 이뤄진다.

// ViewController.swift

	let customView: CustomView()

    override func loadView(){
        super.loadView() // ❌ 재정의해서 뷰를 교체할 경우 상위 호출을 하면 안된다
        view = customView
    }
    
    ...