我试图在决定是否显示登录/注册 View Controller 或登录 View Controller 之前验证是否存在用户。我遇到的问题是,要检查用户是否存在,我必须等待 viewDidAppear
,因为由于某种原因,如果我运行,用户总是 nil
viewDidLoad
中的检查。
我正在为我的用户系统使用 Parse,但我不确定这是否是问题的一部分。下面的代码工作正常,除了在执行 if(PFUser.currentUser() != nil)
行之前瞬间加载 ViewController
的 View 。
我希望能够在 viewDidLoad
中运行用户检查,这样 View 就不必实际出现,但如果我这样做,用户总是返回 nil
。
我尝试在登录/注册屏幕之前添加一个空白 View Controller ,但这只会加载一秒钟的白色屏幕。我尝试在 Storyboard启动屏幕中执行此操作,但这是不允许的(我相信有充分的理由),并且我可以创建一个作为启动屏幕副本的 View 并从那里运行它,但这似乎有点像黑客。
执行此操作的正确方法是什么?我认为这是大多数应用程序中常见的做法,我只是不知道在哪里执行该 if
语句。
import UIKit
import Parse
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
if (PFUser.currentUser() != nil) {
let vc = self.storyboard!.instantiateViewControllerWithIdentifier("summaryView")
self.presentViewController(vc, animated: true, completion: nil)
}
}
}
最佳答案
您可以将代码放入 application(_:, didFinishLaunchingWithOptions:)
中。
if let user = PFUser.currentUser() {
// Code to execute if user is logged in
let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewControllerWithIdentifier("VCIdentifier")
self.window?.rootViewController = viewController
self.window?.makeKeyAndVisible()
} else {
// Default screen you set in info plist.
}
关于ios - 解析 - 如何在 View 加载之前检查登录用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34190411/