Примечание: Если у вас есть контроллер панели вкладок с контроллерами навигации в корне каждого контроллера представления, установка элемента панели вкладок на контроллерах представления не повлияет на заголовок, если вы устанавливаете navigationItem.title
. tabBarItem
Вместо этого вам нужно будет установить его на контроллер навигации, чтобы его можно было взять с контроллера панели вкладок.
Ни один из ответов, опубликованных другими пользователями, не помог мне, потому что все контроллеры представления панели вкладок имеют в своем корне контроллеры навигации - это общий шаблон иерархии для UITabBarController
. tabBarItem
Вместо этого вы должны установить контроллер навигации, чтобы заголовок отображался иначе, чем navigationItem
заголовок
Вы можете создать свои tabBarItem
и напрямую связать их со своим ВК.
let tabBarVCOne = BooksListViewController()
tabBarVCOne.tabBarItem = UITabBarItem(title: "Books", image: nil, tag: 0)
tabBarViewControllers.append(tabBarVCOne)
...
Тогда у вас будет что-то вроде этого:
//Wrap each view controller in a navigation controller.
self.viewControllers = tabBarViewControllers.map(UINavigationController.init)
Но это следует изменить на следующее, чтобы захватить уже связанный tabBarItem
с контроллером представления и автоматически установить его на контроллер навигации.
self.viewControllers = tabBarViewControllers.map({
let navigationController = UINavigationController(rootViewController: $0)
navigationController.tabBarItem = $0.tabBarItem
return navigationController
})
Теперь у вас будет возможность иметь другой заголовок (установленный в вашей VC) отдельно от заголовка, определенного для вашего tabBarItem
.