IOS 12とiOS 13をサポートする必要があります。
AppDelegate
とSceneDelegate
の間でコードを複製する必要がありますか?
例えば:
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let windowScene = (scene as? UIWindowScene) else { return }
let window = UIWindow(windowScene: windowScene)
window.rootViewController = HomeViewController()
window.makeKeyAndVisible()
self.window = window
}
そして
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = HomeViewController()
window.makeKeyAndVisible()
self.window = window
return true
}
これを行わないと、1つのバージョンで黒い画面が表示されますが、viewDidLoad
のHomeViewController
メソッドで印刷すると、2回呼び出されることがわかります。
didFinishLaunchingWithOptions
を更新すると、iOS13
まだ2回呼び出されています。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
guard #available(iOS 12, *) else { return true }
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = HomeViewController()
window.makeKeyAndVisible()
self.window = window
return true
}
Xcode 11. *およびSwift 5。*
IOS 12とiOS 13の両方でコードが正常に機能するようになった後、以下の手順に従ってください-
これが誰かのために働くことを願っています。ハッピーコーディング????