Presenting View Controller太慢

问题描述 投票:0回答:1

我已经在我的Swift应用中实现了Firebase Google登录。我想在开始时检查其是否已经登录的用户。我这样做是这样的:

override func viewDidLoad() {
        super.viewDidLoad()
        GIDSignIn.sharedInstance()?.presentingViewController = self
        GIDSignIn.sharedInstance().delegate = self

    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(false)

        if Auth.auth().currentUser != nil {

          let storyboard = UIStoryboard(name: "Main", bundle: nil)
          let vc = storyboard.instantiateViewController(withIdentifier: "feedVC")
          vc.modalPresentationStyle = .fullScreen
          self.present(vc, animated: false)

        }
    }

现在我的问题是:它可以按我想要的方式工作,但是速度很慢。在显示主页之前,我仍然可以快速浏览登录屏幕。

现在,如果我想将currentUser检查添加到viewDidLoad中,则应用程序不会检查用户之前是否已经登录。

有什么建议吗?

swift firebase viewdidload presentviewcontroller viewdidappear
1个回答
0
投票

在主线程上执行

 override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(false)

        if Auth.auth().currentUser != nil {
    DispatchQueue.main.async {
     let storyboard = UIStoryboard(name: "Main", bundle: nil)
              let vc = storyboard.instantiateViewController(withIdentifier: "feedVC")
              vc.modalPresentationStyle = .fullScreen
              self.present(vc, animated: false)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.