Следующий контроллер представления загружается до того, как данные 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()
}
}