티스토리 뷰
IOS 프로젝트를 생성할 때 swiftUI와 storyboard 중 하나의 인터페이스를 사용해서 만들 수 있다. swiftUI를 사용할 경우 코드와 canvas로 화면을 구성 하게 되지만 storyboard를 선택하면 GUI환경에서 UI 배치 작업을 할 수 있는 storyboard라는 파일이 생긴다. GUI 환경에서 작업하고 IBOutlet 같은 annotation으로 연결할 수 있지만 속도도 느리고, 화면도 작아서 맥북으로는 원활하게 작업할 수가 없다. 차라리 storyboard를 없애고 코드로 작업할 수 있도록 환경을 바꿔 보자.
먼저 main.storyboard를 삭제한다.
하지만 프로젝트는 아직 main.storyboard를 인터페이스로 알고 있기 때문에 프로젝트 속성으로 들어가서 인터페이스 항목을 지운다.
info.plist를 자세히 읽어보면 ApplicationSceneManifest라는 항목이 있는데 이 항목 아래에는 Default Configuration이라는 Application Session Role 이 정의되어 있다. 이 role은 SceneDelegate 라는 delegate class를 사용하고, main 이라는 storyboard를 사용한다고 정의되어 있는데, storyboard를 지웠으니까 storyboard name 항목도 지운다.
AppDelegate로 이동하면 앞에서 본 Default Configuration을 SceneConfiguration로 만들어서 사용하는 것을 볼 수 있다. storyboard를 사용할 때는 storyboard가 UIWindow를 만들고 root view controller도 GUI 환경에서 initial view controller로 설정해 주는 것으로 초기화 할 수 있었지만 이제 코드에서 직접 만들고 초기화 해야 한다.
SceneDelegate로 이동해서 window를 생성하고 초기화 한다.
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = scene as? UIWindowScene else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bound)
window?.windowScene = windowScene
window?.rootViewController = MyViewController()
window?.makeKeyAndVisible()
}
이제 storyboard로 부터 자유로워 졌다.
'Programming > IOS' 카테고리의 다른 글
IOS Beginner | UITableView tutorial dynamic height (0) | 2020.12.30 |
---|---|
IOS Beginner | 회원가입 page 만들기 UIPageViewController, UIImagePickerController (0) | 2020.12.26 |
iOS Expert | Firebase GoogleSignIn 연동 (0) | 2020.12.15 |
iOS Expert | 서버에 저장된 이미지로 view update (0) | 2020.12.13 |
IOS Beginner | 끌어내려서 새로고침 UIActivityIndicatorView (0) | 2020.12.10 |
- Total
- Today
- Yesterday
- OS
- Java
- database
- mongoDB
- swift
- ue4
- JSP
- 자료구조
- C++
- Spring
- rxswift
- SOCKET
- 드라마
- C/C++
- winsock
- machine learing
- ios
- 운영체제
- scala
- 알고리즘
- SwiftUI
- Cocos2d-x
- 데이터베이스
- Git
- DesignPattern
- C
- 국내여행
- game
- SHADER
- 수학
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |