Я получаю онлайн-статус из 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
}
}
}