我目前正在使用Parse来处理我的应用中的帐户。使用PFUser.currentUser功能,我已经为在设备上登录过应用程序的用户实现了自动登录。问题是,当应用程序打开时,大约一秒钟会显示登录屏幕,而Parse会对当前用户进行身份验证。是否可以显示加载图标,或只显示任何其他屏幕?它可能会让人感到困惑,并且它肯定不是理想的UI,因为每次用户打开应用程序时登录屏幕都会显示一秒钟。任何想法/修复将不胜感激。
答案 0 :(得分:1)
在这种情况下,我倾向于创建一个看起来与启动画面完全相同的ViewController。然后,该屏幕决定用户应该指向哪条路线,例如,如果他们已经登录,请直接进入应用程序,如果没有,请将他们带到登录视图。
答案 1 :(得分:1)
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
}