gpt4 book ai didi

ios - 自动登录,AppDelegate 为 SceneDelegate,UIApplication.shared.delegate 为! AppDelegate 被替换为?

转载 作者:行者123 更新时间:2023-11-29 05:19:07 26 4
gpt4 key购买 nike

我在尝试设置自动登录功能时遇到问题。

我之前对根 ViewController 进行了一些研究,发现我现在需要使用 SceneDelegate 来实现自动登录功能,而不是使用 AppDelegate。但是,每当我尝试注销或登录时,以下代码都会使我的应用程序崩溃。

(UIApplication.shared.delegate as! AppDelegate).configureInitialViewController()

我知道我不再可以使用它,因为我已从 AppDelegate 切换到 SceneDelegate。有人可以建议我应该使用修改后的代码来允许我登录和注销吗?

我在SceneDelegate中的代码如下。

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
configureInitialViewController()
guard let _ = (scene as? UIWindowScene) else { return }
}

func configureInitialViewController() {
var initialVC: UIViewController
let storyboard = UIStoryboard(name: "Welcome", bundle: nil)

if Auth.auth().currentUser != nil {
initialVC = storyboard.instantiateViewController(withIdentifier: IDENTIFIER_TABBAR)
} else {
initialVC = storyboard.instantiateViewController(withIdentifier: IDENTIFIER_WELCOME)
}

window?.rootViewController = initialVC
window?.makeKeyAndVisible()
}

最佳答案

在您的代码中,您没有设置窗口。

var window: UIWindow?

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)
{
guard let windowScene = scene as? UIWindowScene else {
return
}

let window = UIWindow(windowScene: windowScene)
let storyboard = UIStoryboard(name: "Welcome", bundle: nil)

if Auth.auth().currentUser != nil {
window.rootViewController = storyboard.instantiateViewController(withIdentifier: IDENTIFIER_TABBAR)
} else {
window.rootViewController = storyboard.instantiateViewController(withIdentifier: IDENTIFIER_WELCOME)
}

self.window = window
window.makeKeyAndVisible()
}

关于ios - 自动登录,AppDelegate 为 SceneDelegate,UIApplication.shared.delegate 为! AppDelegate 被替换为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com