Swift ํ๋ก์ ํธ๋ฅผ ์๋ก ์์ฑํ๊ณ ์คํ ์ํค๋ฉด ๊ธฐ๋ณธ์ผ๋ก Main.storyboard๋ฅผ ์์์ ์ผ๋ก ์ก๊ฒ ๋ฉ๋๋ค. ์ด๋ ๋ฉ์ธ ์คํ ๋ฆฌ๋ณด๋๋ก ์์ํ์ง ์๊ณ ์คํ ๋ฆฌ๋ณด๋ ์์ด ํ๋ก์ ํธ๋ฅผ ์คํ์ํค๊ณ ์ถ๋ค๋ฉด ์๋ ํํ ๋ฆฌ์ผ ์์ผ๋ก ๋ฐ๋ผ์ ์งํํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ฐ์ ํ๋ก์ ํธ์ ์๋ Main.storyboard๋ฅผ ์ญ์ ํด ์ค๋๋ค. ํด๋น ํ์ผ์ ํด๋ฆญํ์๊ณ ๋ฐฑ์คํ์ด์ค ๋๋ฅด์๋ฉด ์๋์ ๊ฐ์ ์ฐฝ์ด ๋น๋๋ค.
ํด๋น ํ์ผ์ ์ฐธ์กฐ๋ง ์ง์ ์ค ๊ฒ์ธ์ง ์๋๋ฉด ํ์ผ์ ํด์งํต์ผ๋ก ์ฎ๊ฒจ ์ฐธ์กฐ ๋ฟ๋ง ์๋๋ผ ํ์ผ๋ ๊ฐ์ด ์ง์ ์ค ๊ฒ์ธ์ง ๋ฌป๋ ์ฐฝ์ ๋๋ค. ์ด๋ Move To Trash ๋ฒํผ์ ๋๋ฌ์ ์์ ํ ์ญ์ ํด ์ค๋๋ค. Remove Reference๋ ์ฐธ์กฐ๋ง ์ง์ฐ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ํด๋น ํ๋ก์ ํธ์ ํ์ผ์ด ๋จ์ ์๊ฒ ๋ฉ๋๋ค. ํ๋ ๋ฒํผ ๋๋ฅด์ง ๋ง์๊ณ ํ์ ๋ฒํผ ๋๋ฌ ์ฃผ์ธ์
๋ค์์ผ๋ก ํ๋ก์ ํธ > ํ๊น > General ํญ์์ Deployment Info๋ฅผ ๋ด ๋๋ค. Main Interface์ Main์ ์ง์์ ์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ง์ ํด ์ค๋๋ค.
์ด์ info.plist๋ก ํ์ผ์ ํด๋ฆญํด ์ค๋๋ค. ์คํํด ๋ณด๊ณ Main์ ์ฐพ์ ์ ์๋ค๋ ๊ฒฝ๊ณ ์ฐฝ ํ์ธํ๊ณ ์ง์๋ ๋์ง๋ง ๋จผ์ ์ญ์ ํด ์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค. ctrl + F ๋๋ฌ์ main์ ๊ฒ์ํด์ ์ฐพ์ผ์ ๋ ๋๊ณ Application Scene Manifest > Scene Configuration > Application Session Role > item 0 > Storyboard Name ์ผ๋ก ํ๊ณ ๋ค์ด๊ฐ์ ๋ ๋ฉ๋๋ค. ์ฌ๊ธฐ์ ์คํ ๋ฆฌ ๋ณด๋๊ฐ Main์ผ๋ก ์ง์ ๋ ๊ฒ์ ํ์ธ ํ ์ ์๋๋ฐ ์ฑ ์คํ์ Main ์คํ ๋ฆฌ๋ณด๋๋ฅผ ์ฐธ์กฐํ๋ฏ๋ก ํฌ๋์๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ฐ๋ผ์ ํด๋น ํ์ ๋๋ฅด๊ณ ๋ฐฑ์คํ์ด์ค ํค๋ฅผ ๋๋ฌ์ ์ง์ ์ค๋๋ค.
์ด์ ์๋์ฐ๋ฅผ ์ง์ ์ง์ ํด ์ค์ผ ํฉ๋๋ค. main ์คํ ๋ฆฌ๋ณด๋๋ก ์ง์ ๋ฌ์ ๋๋ window๋ฅผ ์๋์ ์ผ๋ก ์์ฑํด ์ฃผ์ง๋ง ์ง์ ์คํ ๋ฆฌ๋ณด๋ ์์ด ํ๋ก์ ํธ๋ฅผ ์คํํ๋ ค๋ ๊ฒฝ์ฐ RootView๋ฅผ ์ค์ ํด ์ฃผ์ด์ผ ํฉ๋๋ค.
project Navigator์์
SceneDelegate๋ฅผ ์ ํํด ์ฃผ์ธ์. SceneDelegate๊ฐ ๋์ค๊ธฐ ์ด์ ์๋ AppDelegate์์ ์์ฑํด ์ฃผ์๋๋ฐ ์ฑ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ด iOS13 ๋ถํฐ ๋ฐ๋์ด์ SceneDelegate์์ ์ค์ ํด ์ฃผ์ด์ผ rootView๋ฅผ ์ง์ ํด ์ค ์ ์์ต๋๋ค.
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: windowScene.coordinateSpace.bounds)
window?.windowScene = windowScene
window?.rootViewController = HomeViewController()
window?.makeKeyAndVisible()
}
}
ํด๋น ํ์ผ์ window ํ๋กํผํฐ๊ฐ ์๋ ๊ฒ ํ์ธํ์๊ณ ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํด ์ค๋๋ค. ์ ์ฝ๋์์ HomeViewController ๋ ์ ๊ฐ ์์ฑํ ํด๋์ค์ด๋ฏ๋ก ์ฌ๊ธฐ์ ์ํ์๋ ViewController ๋ฅผ ์ง์ ํ์๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด ํด๋น ViewController ๋ก ์์ํ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์์ ํด์ผ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๐
2023๋ ์์
Main storyboard file base name ์ด ํ๋๋ ์ง์ ์ฃผ์๋ฉด ๋ฉ๋๋ค! ๋ฉ์ธ ์คํ ๋ฆฌ ๋ณด๋ ๋ชป ์ฐพ๋ ์ด์ ๋ ์ ํ์ธํด ๋ณด๋ Main ์ด ์ฌ๊ธฐ ์ ๊ธฐ ๋ฐํ ์๋ค์ ใ ใ ์ด ์ ๋๋ฉด Main ์คํ ๋ฆฌ๋ณด๋ ์ฐ๋ผ๋ ์๋ฏธ๊ฐ ์๋ ๊น?
// ์ฐธ๊ณ ๋ธ๋ก๊ทธ์ ์ฌ์ดํธ
sarunw.com/posts/how-to-create-new-xcode-project-without-storyboard/
'๐ iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] UIButton ๋ฒํผ ๋๋ฌ์ ํจ์ ํธ์ถ addTarget (์ฒ์ ๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ) (1) | 2021.03.23 |
---|---|
[Swift]UITableViewDataSourcePrefetching ํ ์ด๋ธ ๋ทฐ์ ์ ๋ฐ์ดํฐ ๋ฏธ๋ฆฌ ๋ก๋ ์ํค๊ธฐ (0) | 2021.03.19 |
[SwiftUI] UserDefault ์ญํ์ ํ๋ AppStorage (0) | 2021.02.12 |
[SwiftUI] TextField์ Toggle ์ฌ์ฉํ๊ธฐ (0) | 2021.02.10 |
iOS Date Picker Style ์์๋ณด๊ธฐ Objective c (0) | 2020.12.28 |
๋๊ธ