Примечание: Если у вас есть контроллер панели вкладок с контроллерами навигации в корне каждого контроллера представления, установка элемента панели вкладок на контроллерах представления не повлияет на заголовок, если вы устанавливаете 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.