Изменение цвета навигационной панели во время вызова контроллера просмотра

У меня есть три контроллера вида. В первом представлении контроллера (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] } 

Он отлично работает, если я откидываюсь назад, а не нажимаю кнопку «Назад».

2 Solutions collect form web for “Изменение цвета навигационной панели во время вызова контроллера просмотра”

используйте эту функцию в thiredVC

 override func willMove(toParentViewController parent: UIViewController?) { self.navigationController?.navigationBar.barTintColor = color use in secondVC } 

Вы можете создать настраиваемую панель навигации для SecondVC. И вызвать метод -popViewController вручную при нажатии кнопки «Назад».

  • iOS Autolayout - Правильное отображение позиции ниже полупрозрачной навигационной панели
  • iOS 7 UINavigationBar не скрыт при просмотре перехода
  • Навигационный стек становится непригодным после отмены iOS 7 назад
  • Как установить различные цвета навигационной панели для разных UIViewcontroller в xib?
  • UIStatusBar, как в новом приложении iOS7 для Facebook
  • Почему navigationItem.titleView выравнивается влево при вызове currentmodalviewcontroller?
  • Удалить фоновое изображение на UINavigationBar
  • Предупредительный кадр для «Навигационной панели» будет отличаться во время выполнения в XCode 8 Swift 3
  • Невозможно сделать панель навигации абсолютно прозрачной в iOS6
  • Настройка UINavigationBar глобально?
  • iOS 7 NavigationBar не показывает точный цвет RGB
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.