启动iOS应用时检查用户登录

时间:2018-03-21 10:02:36

标签: ios swift

我在iOS上有一个应用程序,我使用firebase进行用户登录/验证等。我希望能够登录,如果用户关闭应用程序然后重新打开它,他们就不会被迫重新启动每次登录。目前我的AppDelegate中有这段代码:

func setRootViewController(){
   if Auth.auth().currentUser != nil {
      self.presentTabBar()
    } else {
      self.presentLoginViewController()
    }
}

func presentTabBar(){

    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let viewController = storyboard.instantiateViewController(withIdentifier :"myTabBar")
    self.present(viewController, animated: true)
}

然而,因为这是在我的AppDelegate中,我在我的行self.present(viewController ...)上收到错误,说AppDelegate没有名为self的memeber。我知道这是因为self只适用于ViewControllers。

如何在AppDelegate文件中实现此功能?

2 个答案:

答案 0 :(得分:0)

代替#include,您可以使用

self.present(viewController, animated: true)

答案 1 :(得分:0)

      func setRootViewController() {
            if Auth.auth().currentUser != nil {
                   UIApplication.shared.keyWindow?.rootViewController = nil
                   UIApplication.shared.keyWindow?.rootViewController = homeViewController
                  UIApplication.shared.keyWindow?.makeKeyAndVisible()
           } else {
               UIApplication.shared.keyWindow?.rootViewController = nil
               UIApplication.shared.keyWindow?.rootViewController = loginViewController
              UIApplication.shared.keyWindow?.makeKeyAndVisible()
         }
      }