возможно ли изменить цвет панели навигации только одного контроллера просмотра?

#ios #swift #uinavigationbar

#iOS #swift #uinavigationbar

Вопрос:

Я попытался изменить цвет панели навигации в одном контроллере, но это меняет цвет панели навигации в каждом контроллере.

Комментарии:

1. Обновите вопрос своим кодом

2. Появится изменение цвета в представлении, и представление исчезнет. Или нажмите новый элемент навигации для этого контроллера представления.

3. //self.NavigationController?.NavigationBar.barTintColor = UIColor.red

Ответ №1:

Не используйте тип перехода в качестве push / show.

Вы можете попробовать present type. Это поможет вам.

Здесь вы создадите новую navigationController . Итак, вы можете настроить ее для одного ViewController.

Я надеюсь, что это поможет вам в полной мере.

Комментарии:

1. как создать новый контроллер навигации?

2. в раскадровке выберите view controller, который вы хотите добавить внутри navigationcontroller -> Editor -> Embed in -> Navigation Controller

Ответ №2:

на вашем контроллере просмотра примените следующие методы:

 override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated: animated)
    self.navigationController?.navigationBar.barTintColor = UIColor.red //current new color
}


override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated: animated)
    self.navigationController?.navigationBar.barTintColor = UIColor.white  //other vc's color
}
  

Комментарии:

1. изменение цвета панели навигации следующего контроллера занимает 5-6 секунд.