개발자로써 Storyboard없이 UI를 구성할 줄 알아야 한다고 느낀 후 코드로 UI를 작성하는 연습을 하고있다.
그래서 Storyboard 없이 프로젝트를 생성하는 방법에 대해 기록하려고 한다.
1. 프로젝트 생성
2. Main.storyboard 삭제
스토리보드를 삭제❌❌❌한다.
에러가 발생한다 Main스토리보드를 찾을 수 없으니까..
3. info.plist 수정
1. Storyboard Name을 삭제한다.
2. Main storyboard file base name을 찾아 삭제한다.
⭐️⭐️⭐️ 커맨드(command) + S 프로젝트 저장!!
4. 초기 ViewController(Root)을 지정한다. 파일명: SceneDelegate.swift
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScence = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScence.coordinateSpace.bounds)
window?.rootViewController = UINavigationController(rootViewController: ViewController())
window?.makeKeyAndVisible()
window?.windowScene = windowScence
}
5. ViewController의 배경 색상을 지정해서 잘 나오는지 확인해야한다.
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemPink
}
}
⭐️ 추가
스토리보드 없이 작업을 하다보면 뷰를 컨트롤러에서 분리시킬 수 있다.
그렇게 되면 컨트롤러의 상속받은 뷰를 커스텀한 뷰로 교체시켜야 하는데 이는 loadView()에서 할 수 있다.
또한 loadView()에서 다음과 같은 작업이 이뤄진다.
// ViewController.swift
let customView: CustomView()
override func loadView(){
super.loadView() // ❌ 재정의해서 뷰를 교체할 경우 상위 호출을 하면 안된다
view = customView
}
...