[Swift](Error)Thread 1: "Could not find a storyboard named 'Main' in bundle NSBundle / 스토리보드 삭제 & 초기 뷰 컨트롤러 지정

Horang·2023년 8월 13일
0

❗️문제 상황

  1. 내가 원하는 뷰 컨트롤러 초기 뷰 컨트롤러로 지정하기 위해 어떻게 해야 할까 고민
  2. 코드로 화면을 구성하다보니 스토리보드가 필요가 없겠다 싶어 Main.storyboard 파일 삭제
  3. 잘 돌아가던 앱이 스토리보드 파일을 삭제하니 아래 오류 발생
    Thread 1: "Could not find a storyboard named 'Main' in bundle NSBundle

❗️해결 방법

  1. Main.storyboard 파일 삭제

  2. Info.plist에서 Storyboard Name 삭제

  3. ⭐️프로젝트 파일에서 Info탭에 들어가 Main storyboard file base name 삭제

  4. AppDelegate.swift 파일에서 기본으로 설정할 뷰 컨트롤러를 아래 코드처럼 작성

    func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
                
                guard let windowScene = (scene as? UIWindowScene) else { return }
                window = UIWindow(frame: windowScene.coordinateSpace.bounds)
                window?.windowScene = windowScene	
                window?.rootViewController = FirstViewController()  //⭐️원하는 뷰 컨트롤러 파일의 이름을 작성
                window?.makeKeyAndVisible()
            }

❗️힘들었던 점 & 나의 생각

  • xcode가 업데이트 되면서 위에 자료들과 약간의 차이가 있었다. 분명 자료들에서는 Main storyboard file base namestoryboard NameInfo.plist에 위치해 있었지만 Main storyboard file base name이 보이지 않아 나머지 것만 수정하고 앱을 실행시켰는데 오류가 계속해서 발생했다.
  • 그래도 여러 자료를 찾아보다 프로젝트 파일을 설정하는 곳에서도 뭔가를 손봐야 한다는 내용을 발견했다. 그러나 자료에서 나온 사진과 다른 인터페이스가 나와서 당황을 했다.(xcode가 업데이트 되면서 바뀐듯하다.)
  • 혹시나 하는 마음에 프로젝프 설정에서 여러 탭들을 둘러보다가 우연히 storyboard file base name 를 발견하고 삭제를 했더니 에러가 해결이 되었다.

💡 swift와 xcode는 우리의 편의와 기능 추가, 기능 향상을 위해 업데이트가 계속해서 일어난다. 그렇기 때문에 구글링을 하다보면 현재에는 없어지거나 달라진 문법이 사용되고 있을 수 있고, 현재와는 구성이 달라진 xcode 화면의 사진이 있을 수 있다. 우리가 해결해야하는 부분이 이제는 업데이트가 되어 따로 해결할 필요가 없을 수 있다. 그러나 수정을 해주어야 하는 것이 화면 구성이 바뀌면서 구글링 자료들과 다른 위치에 있을 수 있다. 그렇기 때문에 문제 해결을 위해 구글링을 하면서도 그것이 오래된 과거 자료라면 ‘현재는 바뀌었을 수 있겠다’ 라는 생각을 갖고 접근하는 것이 중요할 것 같다.

❗️참고 자료

set initial viewcontroller in appdelegate - swift

iOS 13+) Storyboard 없이 프로젝트 생성하기

iOS | 스토리보드 없이 코드로만 개발하기

profile
몰입하여 고민하는 시간

1개의 댓글

comment-user-thumbnail
2023년 8월 13일

이런 유용한 정보를 나눠주셔서 감사합니다.

답글 달기