以下视图控制器在Firebase数据有机会加载之前加载。如何在视图加载器出现的同时或之前加载Firebase数据?
当我使用断点时,我可以看到新视图出现,然后数据从Firebase中提取。我需要在视图出现之前从Firebase加载数据。
这是视图控制器的代码
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout",
style: .plain, target: self, action: #selector(handleLogout))
let image = UIImage(named: "new_message_icon")
navigationItem.rightBarButtonItem = UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(handleNewMessage))
checkIfUserIsLoggedIn()
}
@objc func handleNewMessage(){
let newMessageController = NewMessageController()
let navController = UINavigationController(rootViewController: newMessageController)
present(navController, animated: true, completion: nil)
}
func checkIfUserIsLoggedIn() {
if Auth.auth().currentUser?.uid == nil {
perform(#selector(handleLogout), with: nil,
afterDelay: 0)
}else{
let uid = Auth.auth().currentUser?.uid
Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: {(snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
self.navigationItem.title = dictionary["name"] as? String
self.navigationController?.navigationBar.prefersLargeTitles = true
}
},withCancel: nil)
}
}
override func didMove(toParentViewController parent: UIViewController?) {
checkIfUserIsLoggedIn()
}
}