Данные из Firebase отображаются после загрузки View Loader - PullRequest
0 голосов
/ 19 мая 2018

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...