Nota: Si tiene un controlador de barra de pestañas con controladores de navegación en la raíz de cada controlador de vista, configurar el elemento de la barra de pestañas en los controladores de vista no afectará el título si está configurando el navigationItem.title. Deberá configurar el tabBarItemen el controlador de navegación en su lugar para que se recoja desde el controlador de la barra de pestañas.
Ninguna de las respuestas publicadas por otros me funcionó porque todos los controladores de vista de mi barra de pestañas tienen controladores de navegación en su raíz; este es un patrón de jerarquía común para UITabBarController. En su lugar, debe configurar el controlador de navegación tabBarItempara que el título se muestre de manera diferente al navigationItemtítulo de
Puede crear sus tabBarItemy asociarlos a su VC directamente como tal.
let tabBarVCOne = BooksListViewController()
tabBarVCOne.tabBarItem = UITabBarItem(title: "Books", image: nil, tag: 0)
tabBarViewControllers.append(tabBarVCOne)
...
Entonces tendrás algo como esto:
//Wrap each view controller in a navigation controller.
self.viewControllers = tabBarViewControllers.map(UINavigationController.init)
Pero eso debería cambiarse a lo siguiente para tomar el ya asociado tabBarItemdel controlador de vista y configurarlo en el controlador de navegación automáticamente.
self.viewControllers = tabBarViewControllers.map({
let navigationController = UINavigationController(rootViewController: $0)
navigationController.tabBarItem = $0.tabBarItem
return navigationController
})
Ahora podrá tener un título diferente (establecido de su VC) separado del título definido para su tabBarItem.