解析自动登录 - 隐藏登录屏幕

时间:2015-11-11 21:09:35

标签: ios swift parse-platform

我目前正在使用Parse来处理我的应用中的帐户。使用PFUser.currentUser功能,我已经为在设备上登录过应用程序的用户实现了自动登录。问题是,当应用程序打开时,大约一秒钟会显示登录屏幕,而Parse会对当前用户进行身份验证。是否可以显示加载图标,或只显示任何其他屏幕?它可能会让人感到困惑,并且它肯定不是理想的UI,因为每次用户打开应用程序时登录屏幕都会显示一秒钟。任何想法/修复将不胜感激。

3 个答案:

答案 0 :(得分:1)

在这种情况下,我倾向于创建一个看起来与启动画面完全相同的ViewController。然后,该屏幕决定用户应该指向哪条路线,例如,如果他们已经登录,请直接进入应用程序,如果没有,请将他们带到登录视图。

答案 1 :(得分:1)

你在唱viewWillAppear吗?因为我也在使用解析而且没有得到这个问题?我使用的代码

override func viewWillAppear() {

if PFUser.currentUser == nil {
//run your code to login the user, eg show login view controller 
} 

如果您将此代码放在您的条目故事板视图控制器上,那么它只会在需要时显示登录/注册视图控制器,而不是在用户已存在时解除它。

答案 2 :(得分:0)

显然,您应用的初始视图控制器是登录视图控制器,因此它会在推送另一个vc之前始终显示它。一种解决方案是分离您的登录视图控制器(没有与任何控制器的segue连接),并使导航vc(或第一个vc)成为您的入口点,并仅在其用户访问时从app delegate启动登录vc首次登录。这是一个如何做到这一点的例子

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

        if //first login {
            //Assuming you used navigation controller
            let navController = self.window?.rootViewController as! UINavigationController
            let loginController = LoginViewController.instantiateFromStoryboard(navController.storyboard!)

            navController.presentViewController(loginController, animated: true, completion: nil)
        } 

    return true
} 
相关问题