Storyboard 없이 Xcode 설정하기

Sanghyunn·2023년 1월 4일
0
post-thumbnail

서두

필자는 Code Base로 개발하는 것을 선호하는 편이다.

Storyboard로 많이 개발을 해본 편은 아니지만 Swift에 입문했을때, Auto Layout이나 협업하면서 생기는 Conflict 때문에 애를 먹었었다.

물론 Storyboard를 사용하는게 서툴러서 생긴 문제였겠지만, Code Base로 해보니 너무 편안했다.

Code Base로 개발하려면 프로젝트를 생성할 때, Storyboard를 사용하지 않게 설정을 해야한다.

근데 매번 설정하는 법을 잊어버려서 구글링으로 찾아서 하곤 했다.. ㅎ

그래서 이번 기회에 따로 정리해놓으려고 한다.

Xcode 설정

Storyboard 삭제
Storyboard를 사용하지 않을 거니까 Main.storyboard를 삭제해주자

삭제를 하고 빌드를 해보면

Thread 1: "Could not find a storyboard named 'Main' in bundle NSBundle...

라는 에러가 뜬다

빌드 과정에서 Main.storyboard를 찾고 있는데, 그 파일을 삭제했기에 오류가 생긴다.

info.plist
info.plist에 있는 Main.storyboard에 관한 항목을 삭제해야한다.

위 경로로 들어가서 Storyboard Name을 삭제하고,

프로젝트 Target - Build Settings - Info.plist Values - UIKit Main Storyboard File Base Name

위 경로에 있는 Main 값도 지우자

SceneDelegate

info.plist의 값들을 수정해주면 빌드는 되지만

디바이스 화면에 아무것도 안 뜬다..!

화면과 관련된 부분을 담당하는 SceneDelegate에서 Scene을 지정하고 있지 않기 때문에 아무 화면도 안 뜨는 것이다.

따라서, SceneDelegate에서 초기화면에 관한 설정을 해줘야한다.

SceneDelegate.swift을 보면

scene이라는 메서드를 볼 수 있다. 이 메서드에서 scene에 관한 처리를 해줘야 하는데 아무런 처리도 안해주고 있다.

scene 메서드의 내부를 아래 코드로 설정해주자

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

빌드가 되었을 때 실행될 windowScene과 rootViewController를 설정해주었다.

이제 빌드를 해보면..

여전히 검은색 화면이 뜬다 ㄷㄷ

이건 사실 ViewController의 backgroundColor가 nil로 설정되어있어서 검은색으로 뜨는 거라

ViewController의 backgroundColor를 파란색으로 해보면

잘 되는걸 확인해볼 수 있다

profile
내 꿈은 개발자

0개의 댓글