Hinweis: Wenn Sie einen Registerkartenleisten-Controller mit Navigations-Controllern im Stammverzeichnis jedes Ansichts-Controllers haben, wirkt sich das Festlegen des Registerkartenleistenelements auf den Ansichts-Controllern nicht auf den Titel aus, wenn Sie den festlegen navigationItem.title
. Sie müssen tabBarItem
das stattdessen auf dem Navigations-Controller einstellen , damit es vom Registerkarten-Controller übernommen wird.
Keine der von anderen geposteten Antworten hat für mich funktioniert, da die View-Controller meiner Registerkartenleiste alle Navigations-Controller im Stammverzeichnis haben - dies ist ein gängiges Hierarchiemuster für UITabBarController
. Sie müssen tabBarItem
stattdessen den Navigationscontroller einstellen , damit der Titel anders als der Titel des Titels navigationItem
angezeigt wird
Sie können Ihre erstellen tabBarItem
und sie direkt so Ihrem VC zuordnen.
let tabBarVCOne = BooksListViewController()
tabBarVCOne.tabBarItem = UITabBarItem(title: "Books", image: nil, tag: 0)
tabBarViewControllers.append(tabBarVCOne)
...
Dann haben Sie so etwas:
//Wrap each view controller in a navigation controller.
self.viewControllers = tabBarViewControllers.map(UINavigationController.init)
Dies sollte jedoch wie folgt geändert werden, um das bereits verknüpfte Element tabBarItem
vom Ansichts-Controller abzurufen und automatisch auf den Navigations-Controller zu setzen.
self.viewControllers = tabBarViewControllers.map({
let navigationController = UINavigationController(rootViewController: $0)
navigationController.tabBarItem = $0.tabBarItem
return navigationController
})
Sie können jetzt einen anderen Titel (von Ihrem VC festgelegt) als den für Sie definierten Titel festlegen tabBarItem
.