728x90
1. ํ๋ก์ ํธ ์์ฑํ๊ธฐ
2. Main.storyboard ์ญ์
์ญ์ ๋ง ํ ์ํ๋ก ํ๋ก์ ํธ๋ฅผ ๊ทธ๋ฅ ์์ํ๊ฒ ๋๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค!
Main.storyboard๋ฅผ ์ฐพ์ ์ ์๋ค๋ ์ค๋ฅ๊ฐ ๋จ๊ฒ๋ฉ๋๋ค.
'Could not find a storyboard named 'Main' in bundle NSBundle [ํ์ผ์์น] WeatherClone.app> (loaded)'
terminating with uncaught exception of type NSException
3. Storyboard ์ค๋ฅ ํด๊ฒฐํ๊ธฐ
- info.plist์ ๊ฐ์ storyboard ์ด๋ฆ์ ์ญ์ ์ํต๋๋ค.
- ํ๋ก์ ํธ targets ์ค์ ์์ BuildSettings - info.plist Value - UIKit Main Storyboard File Base Name (Main) ๊ฒฝ๋ก๋ ์ฐพ์์ ์ญ์
4. ์ด๊ธฐ ViewController (Root) ์ค์
- SceneDelegate.swift ์ค์
iOS 13 ์ด์ ์ AppDelegate์ UI LifeCycle์ ์ญํ ์ IOS 13๋ถํฐ๋ SceneDelegate์๊ฒ ๋๊ฒจ์ฃผ์ด, Scene(ํ๋ฉด)๊ณผ ๊ด๋ จ๋ ๋ถ๋ถ์ SceneDelegate๊ฐ ๋ด๋นํ๊ฒ ๋์๋ค. iOS 13๋ถํฐ SceneDelegate์์ scene์ ์ง์ ํด์ฃผ์ด์ผํฉ๋๋ค.
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
// guard let _ = (scene as? UIWindowScene) else { return } - ์ญ์
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(frame: UIScreen.main.bounds)
window?.windowScene = windowScene
window?.rootViewController = ViewController()
window?.makeKeyAndVisible()
}
}
ViewControllerํ์ ์ ์ธ์คํด์ค(๊ฐ์ฒด) ๋ฅผ ์์ฑํด์ค ๋ค window์ rootViewController์ ํด๋น ์ธ์คํด์ค๋ฅผ ๋์
์ฌ๊ธฐ์ rootViewController๋ Storyboard์์์ 'Is Initial View Controller'๋ก ์ค์ ํด์ฃผ๋ ์ปจํธ๋กค๋ฌ์ด๋ค!
๐ฎNavigationController๋ฅผ rootViewController๋ก ์ง์ ํ๊ณ ์ถ์๋๋?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: windowScene) // SceneDelegate์ ํ๋กํผํฐ์ ์ค์ ํด์ค
let mainViewController = ViewController() // ๋งจ ์ฒ์ ๋ณด์ฌ์ค ViewController
let navigationController = UINavigationController(rootViewController : mainViewController)
// NavigationController์ ์ฒ์์ผ๋ก ๋ณด์ฌ์ง ํ๋ฉด์ rootView๋ก ์ง์
window?.rootViewController = navigationController
window?.makeKeyAndVisible()
}
5. ํ์ธ
import UIKit
class ViewController: UIViewController {
private let tableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
setBackGroundUI()
}
func setBackGroundUI() {
let backgroundImage = UIImageView(frame: UIScreen.main.bounds)
backgroundImage.image = UIImage(named: "skyBackGround")
backgroundImage.contentMode = .scaleAspectFill
self.view.insertSubview(backgroundImage, at: 0)
}
}
728x90