Как изменить цвет заголовка NavBar при получении значений из firebase - PullRequest
2 голосов
/ 15 мая 2019

Я получаю онлайн-статус из Firebase, используя Bool. Когда значение выбрано, цвет заголовка NavBar должен измениться на зеленый или черный в зависимости от статуса в автономном режиме или в сети.

Однако, когда я получаю значение, оно в настоящее время меняет заголовок, но ТОЛЬКО после нажатия кнопки назад цвет заголовка NavBar выполняет изменение цвета. (Я хочу обновить сразу, пока на текущем виде, а не при нажатии назад и, между прочим, вся иерархия изменяется, я только хочу изменить текущий заголовок этого вида.

ViewDidLoad Делает вызов

Swift 5, Firebase 6

func fetchOnlineStatus() {
        let navBar = self.navigationController?.navigationBar
        DB_REF.child("Users").child(user?.uid ?? "").child("online").observe(DataEventType.value) { (snapshot) in
            let postDict = snapshot.value as? Bool
            if postDict == true {
                    navBar?.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.green]
                        navBar?.setNeedsDisplay()
                        navBar?.layoutIfNeeded()
                        navBar?.setNeedsDisplay()
                        self.collectionView.reloadData()
                        self.collectionView.setNeedsDisplay()
                        self.collectionView.layoutIfNeeded()
            } else {
                print("false")
                let changeColor = [NSAttributedString.Key.foregroundColor:UIColor.black]
                self.navigationController?.navigationBar.titleTextAttributes = changeColor
            }
        }
    }

1 Ответ

0 голосов
/ 15 мая 2019

Попробуйте изменить цвет заголовка NavBar в основной теме:

 DispatchQueue.main.async {
    navBar?.titleTextAttributes = [NSAttributedString.Key.foregroundColor:UIColor.green]
    navBar?.setNeedsDisplay()
    navBar?.layoutIfNeeded()
    navBar?.setNeedsDisplay()
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...