반응형
만약 스토리보드 없이 코드로만 구현하고 싶다면?
Main 삭제
우선 스토리보드 Main을 삭제합니다
Scene Configuration 삭제
project - Info - Information Property List - Application Scene Manifest - Scene configuration
- Application Session Role - Item 0(Default Configuration)
- Storyboard Name (삭제)
Main storyboard file base name 삭제
project - Info - Main storyboard file base name 삭제
삭제하게되면 프로젝트 내 스토리보드는 사라진다
(런치 스크린 제외)
사실상 프로젝트를 처음 만들 때 스토리보드에 왼쪽 화살표가 처음 나타나는 화면을 의미하게되고
인스펙터창에서 view Controller 항목을 보게되면
is Initial View Controller 체크에 따라서 처음 화면 유무에 대해서 결정이 되는걸 알 수 있습니다
그래서 스토리보드에서는 자동적으로 설정이 되지만
코드로만 구현할 때는 씬 델리게이트에서 수행하게되는걸 추가적으로 설정을 해야합니다
UIScreen - Deprecated x
코드를 설명하자면
//앱이 처음 실행되거나 새로운 씬이 연결될 때 호출
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`.
// If using a storyboard, the `window` property will automatically be initialized and attached to the scene.
// This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead).
//스토리보드를 사용하는 경우 window property는 자동적으로 초기화되며 scene에 연결됨
//만약 페이지가 늘어났으면 네비게이션을 활용하여 화면전환을 해야하는데 어려움이 존재할 수 있습니다
//scene(UIScene)을 UIWindowScene로 타입캐스팅
guard let scene = (scene as? UIWindowScene) else { return }
//UIWindow객체 생성함 현재 화면 전체 영역을 나타내고 영역에 맞는 UIWindow생성
//방법 1
window = UIWindow(frame: UIScreen.main.bounds)
//생성한 UIWindow에 WindowScene을 설정하게됨
window?.windowScene = scene
//방법 2
window = UIWindow(windowScene: scene)
//네비게이션
// let mainVC = UINavigationController(rootViewController: ViewController())
// window?.rootViewController = mainVC
//UIWindow - rootViewController 설정
window?.rootViewController = ViewController()
//UIWindow 화면에 표시 (visible)상태 만약 없으면 화면에 보이지 않음
window?.makeKeyAndVisible()
}
이렇게 적용만 공식같이 외워버리면 나중에 잊어버릴것 같고
왜 이렇게 작동하는지에 대해서 궁금해서 다음엔
자연스럽게 사용할 수 있다고 생각하기에
ViewController의 작동방법에 대해서 다루고자 합니다
반응형
'UIKit' 카테고리의 다른 글
UIKit | UITableView에 관하여 (0) | 2024.07.03 |
---|---|
UIKit | UIView 어떤식으로 동작되고 있는가? (0) | 2024.07.02 |
UIKit | 모서리 둥글게 만들기 (0) | 2024.06.11 |
iOS 화면 이해 - 프레임 / 오토레이아웃 (0) | 2024.06.04 |
UIKit | MasksToBounds란?? (0) | 2024.06.04 |