iOS13 SceneDelegate 배포 및 밀어내기 마이그레이션 시 솔루션
입문
오랜만에 0부터 앱을 만들었는데 왠지 모르게 SceneDelegate.swift가 자동으로 생성되고 AppDelegate의 생명주기 함수군이 이동하기 때문에 AppDelegate는 시원한 인상을 준다.
개발을 시작하자마자 넘어졌지만 메인 화면(Main. Stroryboard)에서 Push 이전을 할 수 없는 사건이 발생했습니다...
평소 눈에 띄지 않는 부분이라 문제를 해결하는 데 많은 시간이 걸렸다
같은 일에 걸려 넘어진다면 참고하시기 바랍니다.
본론
<해결하고 싶은 내용>
버튼을 눌러 코드를 ExamViewController로 밀어냄
<현황>
화면에서 "Button"을 클릭하면 tapButton 함수가 호출됩니다.
이것은 플로팅 이름 "Exam", Storyboard ID "Exam"으로 정의된 ExamView Controller를 실례화한 것으로 현재까지 문제가 없습니다.
푸시 함수를 실행해도 푸시 이동을 하지 않습니다.
<해결 방법>
SceneDelegate.swiftclass SceneDelegate: UIResponder, UIWindowSceneDelegate {
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
self.window?.rootViewController = createFirstViewController() // <- 新規追加
self.window?.makeKeyAndVisible() // <- 新規追加
}
// 途中省略 ----
extension SceneDelegate { // <- 新規追加 & createFirstViewController関数作成
func createFirstViewController() -> UINavigationController {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateInitialViewController() as! ViewController
let navigationController = UINavigationController()
navigationController.view.backgroundColor = .white
let firstViewController = viewController
navigationController.viewControllers = [firstViewController]
navigationController.setNavigationBarHidden(true, animated: false)
return navigationController
}
}
ain의 View Controller 아래에서 Navigation Controller를 정의하지 않았기 때문에 이런 현상이 발생했습니다.
위의 코드는 SceneDelegate입니다.swift에서 추가, 문제 해결!
Reference
이 문제에 관하여(iOS13 SceneDelegate 배포 및 밀어내기 마이그레이션 시 솔루션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/saenuruki/items/e950c3cabee8436de0ec
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<해결하고 싶은 내용>
버튼을 눌러 코드를 ExamViewController로 밀어냄
<현황>
화면에서 "Button"을 클릭하면 tapButton 함수가 호출됩니다.
이것은 플로팅 이름 "Exam", Storyboard ID "Exam"으로 정의된 ExamView Controller를 실례화한 것으로 현재까지 문제가 없습니다.
푸시 함수를 실행해도 푸시 이동을 하지 않습니다.
<해결 방법>
SceneDelegate.swift
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 }
self.window?.rootViewController = createFirstViewController() // <- 新規追加
self.window?.makeKeyAndVisible() // <- 新規追加
}
// 途中省略 ----
extension SceneDelegate { // <- 新規追加 & createFirstViewController関数作成
func createFirstViewController() -> UINavigationController {
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateInitialViewController() as! ViewController
let navigationController = UINavigationController()
navigationController.view.backgroundColor = .white
let firstViewController = viewController
navigationController.viewControllers = [firstViewController]
navigationController.setNavigationBarHidden(true, animated: false)
return navigationController
}
}
ain의 View Controller 아래에서 Navigation Controller를 정의하지 않았기 때문에 이런 현상이 발생했습니다.위의 코드는 SceneDelegate입니다.swift에서 추가, 문제 해결!
Reference
이 문제에 관하여(iOS13 SceneDelegate 배포 및 밀어내기 마이그레이션 시 솔루션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/saenuruki/items/e950c3cabee8436de0ec텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)