안녕하세요
오늘은 storyboard 없이 ViewController()를 불러오는 방법에 대해 설명하도록 하겠습니다.
ViewController()는 프로젝트 생성 시 자동으로 만들어지는 UIViewController입니다.
스토리보드의 장단점이 몇 가지 있는데, 제가 개발하면서 느낀 점을 적어보겠습니다.
장점 | 단점 | |
1. | 소스코드가 줄어든다. | object가 많아질수록 sotryboard build가 오래 걸린다. |
2. | 화면 개발 시 바로바로 눈으로 확인이 가능하다. | 프로젝트가 무거워진다. |
3. | ModalStyle, Navigation, TabBar 등등 설정이 간편하다. | inspector Area에 없는 부분은 결국 소스코드를 작성한다. |
4. | Object에 어떤 기능이 있는지 inspector Area에서 쉽게 확인이 가능하다. | 협업할 경우 conflict가 발생하면 수정이 어렵다. |
표 1. 스토리보드의 장/단점
장/단점은 직접 해보면서 느끼셨을 거라 생각합니다. ㅎㅎ
아무튼 storyboard 없이 프로젝트를 시작하는 방법에 대해 설명하겠습니다.
[Xcode version: 12.2]
1. 프로젝트 생성
storyboard를 사용하지 않고 개발할 프로젝트를 생성해 줍니다.
2. Main.Storyboard 제거
Main.storyboard를 제거해주세요.
3. info.plist - Main storybard 정보 제거
info.plist에 들어가면 프로젝트 시작 시 기본으로 사용되는 storyboard name이 있는데 storyboard를 사용하지 않으니 제거해줍니다.
3-1. Main storyboard file base name 제거
info.plist에서 'Main storyboard file base name'을 과감히 지워주세요!!
'Main storybaord file base name' 선택 후 backspace를 클릭하셔도 되고, Key name 오른쪽에 [-] 버튼 누르셔도 됩니다.
3-2. Main storyboard file base name 제거 (SceneDelegate 사용 시)
SceneDelegate를 사용할 경우는 추가로 정보를 제거해 주셔야 합니다.
Application Scene Manifest / Scene Configuration / Application Session Role / item 안에 들어있는
"Storyboard Name"항목을 제거해주세요.
4. Root UIViewController 설정
Main으로 설정해둔 UIViewController가 없기 때문에 그냥 빌드를 하면 아무것도 나타나지 않고 검은 화면만 나오게 됩니다.
그러므로 AppDelegate와 SceneDelegate(선택사항)에서 root UIViewController를 지정해줍니다.
4-1. AppDelegate.swift
아래 코드를 AppDelegate.swift에 작성해 주세요.
window 변수가 없는 경우 window 변수도 작성해 줍니다.
var window: UIWindow? // 없는경우 변수 선언하기
window = UIWindow()
window?.rootViewController = ViewController() // root로 설정할 UIViewController
window?.makeKeyAndVisible()
4-2. SceneDelegate.swift (선택사항)
아래 코드를 SceneDelegate.swift에서 작성해 주세요.
SceneDelegate.swift를 사용하지 않는 경우에는 다음 step으로 넘어가 주세요.
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = ViewController() // root로 설정할 UIViewController
window?.makeKeyAndVisible()
5. Root UIViewController 'backgroundColor'
환경설정은 모두 끝났지만, 그대로 빌드하면 검정화면만 나올 겁니다.
그 이유는 root로 설정해둔 UIViewController의 view 색상이 없기 때문입니다.
고로 view의 색상을 지정해주면 끝!
view.backgroundColor = .green
6. Build
마지막으로 확인을 해봐야겠죠??
Build 해서 잘 나오는지 확인해 줍니다.
오늘은 이렇게 해서 Storyboard 없이 프로젝트 설정하는 방법에 대해 알아봤습니다.
만약 오류가 있다면 댓글로 남겨주시기 바랍니다.
감사합니다.
끝.
'Xcode' 카테고리의 다른 글
[Xcode] Build input file cannot be found: Info.plist 해결하기 (0) | 2021.04.09 |
---|---|
[Xcode] Apple Developer Account연동 + Signing Certificate (0) | 2021.02.09 |
[Xcode12] Could not build module 'nanopb' / Double-quoted include "pb.h" in fram (0) | 2020.11.03 |
[Xcode] Swift DEBUG Flag 사용 및 Build Run Setting (0) | 2020.10.24 |
[Xcode] UILabel, UITextField, UIButton(action) (0) | 2020.09.26 |