-
Xcode Swift UIKit 프로젝트 스토리보드 없이 만드는 법공부/Swift(프로그래밍 언어) 2026. 1. 24. 01:43반응형

다음은 Xcode에서 UIKit 프로젝트를 스토리보드 없이 생성·설정하는 표준적인 방법입니다. (iOS 13 이상, SceneDelegate 기준)
1. 프로젝트 생성
- Xcode 실행 → Create a new Xcode project
- iOS → App
- 옵션 설정
- Interface: Storyboard (일단 기본으로 생성)
- Life Cycle: UIKit App Delegate
- Language: Swift
- 프로젝트 생성

2. Storyboard 제거
- Main.storyboard 파일 삭제
- 삭제 시 나오는 다이얼로그에서 Remove References 선택

3. 프로젝트 설정에서 Main storyboard file base name 제거
[Xcode 13 이하] Info.plist에서 다음 항목 제거
[Xcode 13 부터] 프로젝트 설정 > TARGETS > Info 탭 에서 다음 항목 제거Main storyboard file base name(UIMainStoryboardFile)
남아 있으면 앱 실행 시 크래시가 발생합니다.

4. SceneDelegate 수정 (iOS 13+)
SceneDelegate.swift에서scene(_:willConnectTo:)를 아래처럼 수정합니다.func scene( _ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions ) { guard let windowScene = scene as? UIWindowScene else { return } window = UIWindow(windowScene: windowScene) window?.rootViewController = ViewController() window?.makeKeyAndVisible() }- 새로운 UIWindow 오브젝트를 만들어 window에 할당하고
- 임의의 뷰 컨트롤러 (여기서는 ViewController 클래스)를 메인 뷰 컨트롤러로 지정하고
- 이 UIWindow를 “현재 앱에서 실제로 보이는 메인 창”으로 확정 (make key and visible)
5. Info.plist의 Scene Configuration 변경
Info.plist > Application Scene Manifest > Scene Configuration > Window Application Session Role > Item 0 을 찾습니다.
Storyboard Name 키값을 삭제합니다.

그리고 Delegate Class Name이 삭제되는 경우가 간혹 있으므로 아래 화면처럼 Configuration Name, Delegate Class Name이 존재하는지 확인하고, 없는 값이 있다면 추가합니다.

6. 기본 ViewController 구현ViewController.swift예시import UIKit final class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .systemBackground // 프로그래밍적으로 UI 및 기능 추가 } }7. (선택) AppDelegate 확인
기본적으로 수정할 것은 없으나, 아래 메서드(connectingSceneSession)가 존재해야 합니다.
func application( _ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions ) -> UISceneConfiguration { UISceneConfiguration( name: "Default Configuration", sessionRole: connectingSceneSession.role ) }8. 실행 확인
이제 앱을 실행하면 Storyboard 없이 코드 기반 UIKit 앱으로 정상 실행됩니다.
추가 팁
- 완전 코드 기반을 선호한다면
- Auto Layout → NSLayoutConstraint 또는 SnapKit
- 화면 전환 → UINavigationController를 root로 설정
예) 내비게이션 컨트롤러를 메인(rootViewController)으로 설정
window.rootViewController = UINavigationController( rootViewController: ViewController() )반응형'공부 > Swift(프로그래밍 언어)' 카테고리의 다른 글
Swift iOS: 이미지를 불러오는 Action Extension(액션 확장)에서 스크린샷 이미지를 인식하지 못하는 문제 해결 방법 (0) 2026.02.08 SwiftUI TCA: Alert (경고창) 만드는 방법 (0) 2026.02.05 SwiftUI: 탭바가 있는 뷰(TabView) 만들기 (구버전, 신버전) (0) 2026.02.04 SwiftUI TCA: 내비게이션 페이지 이동 (패스, 스택) (0) 2026.01.31 SwiftUI: ‘appendInterpolation’ is deprecated 문제 해결하기 (0) 2026.01.28