SceneDelegate でオンボーディング画面をセットアップしようとしています。
以下のコードを実行すると、コンパイルされますが、黒い画面になります。
AppDelegate の優れたオンボーディング チュートリアルは数多くありますが、iOS13 の新しい SceneDelegate 向けのチュートリアルはほとんどありません。このチュートリアルを取り、SceneDelegate に適用しようとしましたが、うまくいきません: https://www.youtube.com/watch?v=y6t1woVd6RQ&t=537s
これは私のシーン デリゲート コードです。
var window: UIWindow?
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
let launchedBefore = UserDefaults.standard.bool(forKey: "hasLaunched")
self.window = UIWindow(frame: UIScreen.main.bounds)
let launchStoryboard = UIStoryboard(name: "Onboarding", bundle: nil)
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
var vc: UIViewController
if launchedBefore
{
vc = mainStoryboard.instantiateInitialViewController()!
}
else
{
vc = launchStoryboard.instantiateViewController(identifier: "Onboarding")
}
UserDefaults.standard.set(true, forKey: "hasLaunched")
self.window?.rootViewController = vc
self.window?.makeKeyAndVisible()
// guard let _ = (scene as? UIWindowScene) else { return }
}
最後のガードステートメントをコメントアウトする場合とコメントアウトしない場合の両方を試しました。