Заголовок UINavigationBar не меняется при переходе по push segue - PullRequest
0 голосов
/ 03 июня 2019

Итак, в моем проекте я пытаюсь использовать «push» segue, когда нажимается кнопка на первом экране под названием «A». Переход с помощью push-перехода ко второму экрану под названием «B» всегда идет хорошо, но заголовок панели навигации не меняется с переходом. На экране «B» я называю VC «B» в IBInspector, чтобы заголовок второго экрана был «B». Но после перехода заголовок по-прежнему «А», как показано на рисунке ниже. https://thatnaoki.sakura.ne.jp/image/navBar.gif

Проект принадлежит компании, в которой я работаю, поэтому я не могу показать код или более подробную информацию, но я пытаюсь рассказать вам как можно более подробно. Первый экран появился в результате "модального присутствия". Я установил навигационный контроллер как root vc экрана "A".

Вот то, что я пробовал до сих пор.

  • Во втором VC я добавил navigationItem.title = "B" и self.title = "B" в viewdidload и viewdidappear, но оба не работали. все еще показывал "A".
  • Во Втором ВК я уже установил заголовок ВК как «Инспектор атрибутов».
  • В Second VC я добавил self.navigationController?.isNavigationBarHidden = true, а затем navigationbar было скрыто. (Конечно, это не помогло мне напрямую, но я только что проверил.)

Я пытался создать такую ​​же ситуацию за пределами этого проекта. Но я не могу воспроизвести это за пределами проекта. Это означает, что коды моего проекта должны иметь причину такой ситуации. Но я совершенно не уверен, какая часть вызывает.

Я прочитал документацию Apple о контроллере навигации, но они говорят: «Каждый раз, когда меняется контроллер представления верхнего уровня, контроллер навигации соответственно обновляет панель навигации». Это мне не очень помогает.

Итак, я застрял в этой ситуации ...

Кто-нибудь может дать мне какую-нибудь возможную причину, по которой заголовок навигации не меняется при переходе? Мне очень жаль, что я не привел примеры кодов.

1 Ответ

1 голос
/ 03 июня 2019

Попробуйте установить title с viewController’s title property в viewDidLoad()

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.title = "Your Title Here"
    }
}
...