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

У меня есть три контроллера вида. В первом представлении контроллера (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 вручную при нажатии кнопки «Назад».

  • Есть ли способ изменить высоту UINavigationBar в Storyboard без использования UINavigationController?
  • Как настроить панель UINavigation с градиентным цветом?
  • Возникновение UINavigationBar в модальных настройках
  • UINavigationBar стилизация без фоновых изображений
  • iOS 7 UIBarButtonИзвестьте смешной вопрос о расстоянии
  • Изменение высоты панели навигации iOS Swift
  • Как выбрать цвет UIBarButtonItem tintColor
  • Стиль UINavigationBar iOS 8 с вкладками
  • Как сделать leftBarButtonItem похожим на backBarButtonItem?
  • UISearchBar в навигационной панели
  • Использование UIAppearance для перемещения UINavigationBar
  • Interesting Posts

    Изменение свойств панели приложения iPhone App

    Создание приложения iOS для клиента со своей учетной записью разработчика для представления в App Store

    Не удалось запустить ipa-файл в реальном устройстве IOS 10 с помощью appium 1.6.0

    OpenCV imread () не возвращает данные изображения в iOS

    Приложение разбилось с UITabBarController и в покупках приложений

    Запрос пользователя CloudKit записывает «Невозможно запросить типы системы»

    Query Parse containsString делает нечувствительным

    Как изменить размер контроллера вида на раскадровке для целей редактирования?

    UINavigationController удаляет тень при переходе на другой VC

    Xcode 8 Предупреждение категории Objective-C

    Объекты SceneKit сталкиваются в своей ограничивающей рамке, а не вдоль сетки

    MagicalRecord (CoreData) + Today Extension (iOS8) … Будут ли они играть?

    Приложение врезалось в iOS 6, когда пользователь меняет права доступа к контактам

    Установка CocoaPods CorePlot показывает недостающие фреймворки и отсутствующие файлы

    После выбора «Отмена» в диалоговом окне «Разрешения уведомлений», настройки показывают, что оповещения уведомления включены

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.