Как остановить изменение заголовка панели навигации при переходе с контроллера на контроллер - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть два контроллера, которые связаны друг с другом (посредством show, например, push), поэтому, когда я нажимаю кнопку, он переходит к другому контроллеру представления.Это, очевидно, создает стрелку назад для возврата к предыдущему контроллеру, что я и хочу.

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

Итак, по сути, я спрашиваю, как бы вы остановили характеристики одного контроллера, переходящего к другому, когда проводите назад?

Вот код, который я использую для большинства контроллеров представления:

    self.navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    self.navigationController?.navigationBar.shadowImage = UIImage()
    self.navigationController?.navigationBar.isTranslucent = true
    self.navigationController?.navigationBar.titleTextAttributes = . 
   [NSAttributedString.Key.foregroundColor: UIColor.darkGray,
         NSAttributedString.Key.font: UIFont(name: "Avenir Next", size: 20)!]
    self.navigationController?.navigationBar.topItem?.title = " "

Существуют небольшие различия на разных контроллерах, но это ничего не меняет, так как изменяется при возврате

1 Ответ

0 голосов
/ 18 апреля 2019

Если контроллер представления изменяет свойства контроллера навигации (или его навигационной панели), тогда изменения появятся во всех контроллерах представления, совместно использующих этот контроллер навигации.

Если вы хотите, чтобы изменения отображались только для одного контроллера представления, вам следует внести изменения в viewWillAppear этого одного контроллера представления и сбросить изменения в viewWillDisappear того же контроллера представления. Таким образом, изменения (в основном) видны только с одного контроллера представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...