У меня есть три контроллера вида. В первом представлении контроллера (FirstVC) цвет оттенка панели навигации является clearColor, а сам план является полупрозрачным. Когда я нажимаю на что-то, я нажимаю на SecondVC, где панель навигации должна быть непрозрачной. Поэтому я устанавливаю barTintColor на некоторое значение цвета и устанавливаю isTranslucent в false. Когда я нажимаю на ThirdVC из SecondVC, навигационная панель снова должна быть полупрозрачной. Проблема возникает, когда я выхожу на ThirdVC и возвращаюсь к SecondVC. Панель навигации отображается как прозрачная на секунду, а затем становится непрозрачной по мере необходимости. Я не могу понять причину задержки.
Следующий метод вызывается из viewWillAppear()
SecondVC. Я пробовал делать то же самое с viewWillDisappear()
ThirdVC, но не имел никакого эффекта.
fileprivate func configureNavigationBar(){
self.navigationController?.navigationBar.setBackgroundImage(nil, for: UIBarMetrics.default)
self.navigationController?.navigationBar.shadowImage = nil
self.navigationController?.navigationBar.isTranslucent = false
self.navigationController?.navigationBar.barTintColor = Style.Movie.primaryBackgroundColor
let titleDict: NSDictionary = [NSForegroundColorAttributeName: UIColor.white]
self.navigationController?.navigationBar.titleTextAttributes = titleDict as? [String:Any]
}
Он отлично работает, если я откидываюсь назад, а не нажимаю кнопку "Назад".