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ć tabBarItem
na 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 tabBarItem
zamiast tego ustawić kontroler nawigacji, aby tytuł wyświetlał się inaczej niż navigationItem
tytuł
Możesz tworzyć własne tabBarItem
i 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 tabBarItem
z 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
.