Uwaga: Jeśli masz kontroler paska kart z kontrolerami nawigacji w katalogu głównym każdego kontrolera widoku, ustawienie elementu paska kart na kontrolerach widoku nie wpłynie na tytuł, jeśli ustawisz navigationItem.title. Zamiast tego musisz ustawić tabBarItemna kontroler nawigacyjny, aby można go było pobrać z kontrolera paska kart.
Żadna z odpowiedzi opublikowanych przez innych nie zadziałała dla mnie, ponieważ wszystkie kontrolery widoku mojego paska kart mają kontrolery nawigacji w swoim katalogu głównym - jest to typowy wzorzec hierarchii dla UITabBarController. Musisz tabBarItemzamiast tego ustawić kontroler nawigacji, aby tytuł wyświetlał się inaczej niż navigationItemtytuł
Możesz tworzyć własne tabBarItemi bezpośrednio przypisywać je do swojego VC.
let tabBarVCOne = BooksListViewController()
tabBarVCOne.tabBarItem = UITabBarItem(title: "Books", image: nil, tag: 0)
tabBarViewControllers.append(tabBarVCOne)
...
Wtedy będziesz miał coś takiego:
//Wrap each view controller in a navigation controller.
self.viewControllers = tabBarViewControllers.map(UINavigationController.init)
Ale należy to zmienić na następujące, aby pobrać już skojarzony tabBarItemz kontrolera widoku i ustawić go automatycznie na kontrolerze nawigacyjnym.
self.viewControllers = tabBarViewControllers.map({
let navigationController = UINavigationController(rootViewController: $0)
navigationController.tabBarItem = $0.tabBarItem
return navigationController
})
Będziesz mógł teraz mieć inny tytuł (zestaw z Twojego VC) niezależnie od tytułu zdefiniowanego dla Twojego tabBarItem.