[iOS] - Storyboard 사용하지 않게 설정하기



스위프트에서 스토리보드를 사용하지 않고 코드로만 개발하기 위해 스토리보드를 사용하지 않는 설정을 해보자.


기본적으로 Xcode에서 프로젝트를 만들때 스토리보드를 이용해서 개발을 하는 경우가 많지만, 코드로만 프로젝트를 개발하고 싶을 때가 있다. 나는 개발할 때 스토리보드를 전혀 이용하지 않는데, 스토리보드를 이용하지 않도록 Xcode를 설정하는 법을 알아보자.

프로젝트 생성

가장 먼저 프로젝트를 생성하는 것부터 시작한다. Xcode에서 새 프로젝트 만들기를 클릭하면 아래와 같이 어떤 템플릿을 선택할 것인지 나온다. 나는 기본 앱을 개발할 것이므로 ‘App’을 선택했다.

image

그리고 프로젝트 옵션을 설정하는 부분이 뜨는데, 아래와 같이 설정해준다.

image

  • Interface : Storyboard
  • LifeCycle : UIKit App Delegate(Storyboard를 위에서 선택하면 이 옵션밖에 없긴 하다.)

스토리보드를 사용하지 않을 건데 Interface를 Storyboard를 선택한다 의문을 가질 수는 있지만 뒤에서 이를 사용하지 않도록 설정할 것이다. 설정이 다 되었으면 Next를 클릭해준다.

Option 설정하기

Deployment Info에서 Main Interfaace 설정하기

Xcode 화면 맨 왼쪽의 파일 목록에서 가장 위에 있는 프로젝트를 설정하면 아래와 같이 프로젝트를 설정할 수 있는 부분이 나온다. 가운데 Deployment Info 부분의 Main Interface 를 없애준다. 없애는 법은 Main이라고 표시된 부분을 클릭한다음 백스페이스로 다 지워주면 된다. 참고로 MainMain.Storyboard를 의미한다.

image

image

info.plist에서 Storyboard Name 제거하기

image

Xcode 화면 맨 왼쪽 파일 목록에서 프로젝트 이름 폴더 안에 속한 info.plist 파일을 열어준다. 그러면 중간에 아래 화면과 같이 Storyboard Name이라고 되어 있는 부분이 있다. 해당 줄에 마우스를 올리면 + - 버튼이 나타나는데, -버튼을 눌러 없애주도록 하자.

Main.storyboard 파일 없애기

이제 사용하지도 않을 Main.storyboard 파일을 없애준다. 없앨 때 아예 파일을 없애고 싶으므로 Move To Trash를 누른다.

image

제거가 되었다.

image

SceneDelegate에 기본으로 띄울 View Controller 설정하기

위 단계까지 설정하고 프로젝트를 실행했다면 아무것도 나오지 않는 검은 화면이 나온다. 당연한게, 원래는 스토리보드를 기반으로 화면이 노출되지만 지금 스토리보드를 사용하지 않겠다고 설정하고 화면을 어떻게 띄울지 설정을 해주지 않았기 때문에 아무것도 뜨지 않는다. 따라서 처음 화면을 뭘 띄울지에 대한 정보를 설정해줘야 한다.

SceneDelgate.swift 파일의 scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) 함수 내부에서 이를 설정해줄 수 있다.

해당 함수를 아래와 같이 수정한다.

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 = ViewController() // ViewController.swift에 정의된 기본 ViewController
    window?.makeKeyAndVisible()
}

위 코드는 window?.rootViewControoler에 기본 ViewController를 넣어줘서 처음 앱이 실행되면 ViewController가 노출되도록 했다. 이 부분을 navigationController로 띄우든, 다른 어떤 것으로 띄우든 자유다. 그러면 이제 앱을 실행시켰을 때 ViewController가 띄워지게 설정했는데 지금 앱을 실행해도 여전히 검은 화면이 뜰 것이다. 이는 ViewController의 배경색이 지정되어 있지 않기 때문이다. 이를 흰색으로 바꿔주겠다.

ViewController.swift파일에서 viewDidLoad() 함수에 아래와 같이 배경색을 지정하는 코드 한 줄을 추가한다.

override func viewDidLoad() {
    super.viewDidLoad()

    view.backgroundColor = .white
}

이제 앱을 실행시키면 흰 화면이 나온다. 이제부터 원하는 앱을 코드를 작성해서 개발하면 된다.