Дочерние представления UINavigationController не имеют UINavigationItem для установки заголовка

#swift #uinavigationcontroller #storyboard

#swift #uinavigationcontroller #раскадровка

Вопрос:

У меня есть UINavigationController реализованный для обеспечения функциональности pop / push. Однако в дочерних представлениях я не могу установить заголовок панели навигации, а только в первом представлении:

введите описание изображения здесь

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

Как мне добавить заголовок и для дочерних представлений?

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

1. поместите это в viewDidLoad: self.title = "Your Title"

Ответ №1:

Перетащите объект элемента навигации из палитры объектов (cmd-shift-L) на контроллер представления и выберите его.

введите описание изображения здесь

Теперь вы должны иметь возможность устанавливать заголовок, добавлять UIBarButtonItems и т.д.

Ответ №2:

попробуйте с self.navigationItem.title = «Ваш заголовок»

Ответ №3:

Обычно это делается в представлении, загруженном на контроллер представления:

override func viewDidLoad() {
super.viewDidLoad()
self.title = "some title"
}

Однако это работает только в том случае, если ваш контроллер представления встроен в UINavigationController. Я настоятельно рекомендую делать это вместо самостоятельного создания панели навигации. Если вы настаиваете на создании панели навигации самостоятельно, вы можете изменить заголовок, выполнив:

navigationBar.topItem.title = "some title"

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

1. У меня все контроллеры просмотра используют один и тот же класс. Изменит ли это заголовок для всех?

2. вы пробовали это?