728x90
App의 첫 화면 구현시
분명 첫 화면 구현은 했는데 simulator에서
검은 화면만 뜬 경험이 있을 수도 있다
해결점을 알아보자
첫 화면 구현
//시작 화면전에 통제 가능
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
//true이면 ViewController , false SearchTableViewController
//SceneDelegate에 있으면 안되는 코드 -> 시작할때마다 false
//UserDefaults.standard.set(false, forKey: "First") -> 다른 화면에 배치해야한다
//UserDefaults.standard.set(false, forKey: "First")
var window: UIWindow?
guard let scene = (scene as? UIWindowScene) else { return }
window = UIWindow(windowScene: scene)
if UserDefaults.standard.bool(forKey: "First") {
//첫번째 화면 구성
let sb = UIStoryboard(name: "Trend", bundle: nil)
let vc = sb.instantiateViewController(withIdentifier: "ViewController") as! ViewController
//코드로 루트뷰컨트롤러 지정 가능
window?.rootViewController = vc
//중요 디바이스 화면에 비춰주는 역할
window?.makeKeyAndVisible()
} else {
window = UIWindow(windowScene: scene)
//첫번째 화면 구성
let sb = UIStoryboard(name: "Search", bundle: nil)
let vc = sb.instantiateViewController(withIdentifier: "SearchTableViewController") as! SearchTableViewController
//코드로 루트뷰컨트롤러 지정 가능 , 네비게이션컨트롤러 임베디드
//중요 디바이스 화면에 비춰주는 역할
window?.makeKeyAndVisible()
}
}
위의 코드를 SceneDelegate에 작성한다
지금까지 했던 코드랑 별반 차이가 없지만
왜 화면이 보이지 않을 수가 있을까?
makeKeyAndVisible()을 빼먹는 순간 검은색화면만 나오는 불상사가 발생하게 된다
그때부터는 stackoverflow 나 무한 구글링의 늪에 빠질 수 있으니 꼭 써주자
과제 중 주의점을 나도 알고 싶지 않았다
'Tech > iOS' 카테고리의 다른 글
[iOS] Day 23 - Computed Property (0) | 2022.07.26 |
---|---|
[iOS] Day 22 - Xcode Tip, bundle File 생성 방법 (0) | 2022.07.25 |
[iOS] Day 19 - 데이터 전달 (0) | 2022.07.22 |
[iOS] Day 18 - Property (0) | 2022.07.21 |
[iOS] Day - 18 화면 전환 코드 구현 (0) | 2022.07.21 |