iphone - item - UINavigationController dentro de UITabBarController, configurando el título del controlador de navegación
uitabbarcontroller programmatically swift 4 (5)
En mi aplicación tengo un UINavigationController dentro de un UITabBarController. Todo funciona bien, sin embargo, no puedo configurar el título para el controlador de navegación. He intentado varios métodos diferentes y busqué en Google, pero parece que no hay solución para este problema.
Cualquier ayuda sería muy apreciada.
Gracias de antemano.
Sam
Mire la clase UIViewController
en los documentos. Hay una propiedad que apunta al UINavigationItem
que luego tiene una propiedad que apunta al title
. Si el puntero al elemento de navegación devuelve nulo, no debe haber conectado los controladores correctamente.
Para mí, lo siguiente funciona bien:
Inicie los controladores en appDelegateDidFinishLaunching:
Método:
UINavigationController *navContr1;
UINavigationController *navContr2;
UIViewController *viewController1, *viewController2;
viewController1 = [[[FirstViewController alloc] initWithNibName:@"FirstViewController_iPhone" bundle:nil] autorelease];
viewController2 = [[[SecondViewController alloc] initWithNibName:@"SecondViewController_iPhone" bundle:nil] autorelease];
navContr1 = [[[UINavigationController alloc] initWithRootViewController:viewController1] autorelease];
navContr2 = [[[UINavigationController alloc] initWithRootViewController:viewController2] autorelease];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
//self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController1, viewController2, nil];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navContr1, navContr2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
con esto hecho, en sus diferentes viewControllers initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
- Método puede cambiar el título con la siguiente línea:
self.title = @"Your Title";
Buena suerte.
self.navigationItem.title = @"Your Title"
Funciona para todos los casos.
self.title
siempre establece el mosaico del objeto rootViewController
de su ViewController.
Si tiene su viewController
y el rootViewController
es UINavigationController
, self.title
establecerá el título de UINavigationController
.
De forma similar, si ha inicializado un UITabViewController
con los objetos UIViewController
, el self.title
se aplicará en el botón correspondiente del título en el índice, en UITabBar
de UITabViewController
.
De ahí que se diga que self.title
aplica al objeto que contiene viewController
.
Encontré la respuesta al final, fue:
self.tabBarController.navigationItem.title = @"title";