Swift 프로젝트 UI 작성 코드베이스 기본 설정

iOS, Swift - 프로젝트 생성시 스토리보드 없이 코드로 UI 작성에 대한 설명
Apr 09, 2024
Swift 프로젝트 UI 작성 코드베이스 기본 설정
*** 복잡한 설정 없이 간단히 작성 하였음.
참고. MVVM-C 등의 패턴 사용시 진입부 수정 필요

프로젝트 생성

notion image
 

설정 진행방법 (순서는 상관X)

1. 프로젝트파일의 Main Interface부분 삭제, 스토리보드 삭제, 런치스크린 삭제(선택)

 
(삭제전)
notion image
 
 
(삭제후)
notion image
 
 

2. info.plist의 스토리보드 네임 삭제

 
(삭제전)
notion image
(삭제후)
notion image
 
 

3. SceneDelegate에서 루트뷰 설정

아무런 설정이 안된 상태 - 자동생성되는 라이프사이클에 관련된 메소드는 삭제함. 안지워도 무관
notion image
 
(루트뷰 설정)
아래의 코드중 navigation으로 시작할것인지 present로 시작할것 인지에 따라 설정 하면 될것 같습니다.
UIWindowScene으로 Scene를 생성 후 시작되는 window(UIWindow)에 넣어주고, root뷰 생성 후 동일하게 window에 추가 후 화면 실행하는 코드 입니다.
//NavigationViewController 형태로 시작할때 guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(frame: windowScene.coordinateSpace.bounds) window?.windowScene = windowScene let rootVC = ViewController() let introNavigationVC = UINavigationController(rootViewController: rootVC) self.window?.rootViewController = introNavigationVC window?.makeKeyAndVisible() // present, dismiss 형태로 시작할때 guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(frame: windowScene.coordinateSpace.bounds) window?.windowScene = windowScene window?.rootViewController = ViewController() window?.makeKeyAndVisible()
notion image
 
 

4. 완료 빌드 테스트

 
class ViewController: UIViewController { let testView = UIView() override func viewDidLoad() { super.viewDidLoad() testView.backgroundColor = .red testView.frame = CGRect(x: 50, y: 50, width: 150, height: 150) view.addSubview(testView) } }
 
notion image
 
(빌드 완료 디바이스 화면)
notion image
 
 

추가 ) 2024.05.01

Xcode 15 버전 이상부터 파일 구조가 바뀌어서 storyboard Name 삭제시 프로젝트으 buildSetting 에서 main 검색해서 삭제하면 됨.
Share article

끄적끄적 iOS