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



我目前正在使用Parse处理我的应用程序中的帐户。使用PFUser.currentUser功能,我为在设备上登录该应用程序一次的用户实现了自动登录。问题是,当应用程序打开时,在Parse验证当前用户时,会显示登录屏幕约一秒钟。是否可以显示加载图标,或者只显示任何其他屏幕?每次用户打开应用程序时,登录屏幕都会显示一秒钟,这可能会令人困惑,当然也不是理想的UI。任何想法/解决方案都将不胜感激。

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

你在唱viewWillAppear吗?因为我也在使用parse,但没有得到这个问题?如果,我使用的代码

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

如果您将此代码放在入口序列图像板视图控制器上,则它将仅在需要时显示登录/注册视图控制器,而不是在用户已经存在时将其驳回。

显然,应用程序的初始视图控制器是登录视图控制器,所以它总是在推送另一个vc之前显示它。一个解决方案是分离您的登录视图控制器(与任何控制器都没有segue连接),将导航vc(或第一个vc)作为您的入口点,并仅在用户首次登录时从应用程序代理启动登录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
} 

最新更新