15

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.UINavigationController dentro de UITabBarController, configurando el título del controlador de navegación

Cualquier ayuda sería muy apreciada.

Gracias de antemano.

Sam

+0

posible duplicar: http://stackoverflow.com/questions/2760634/cocoa-touch-setting-uinavigationcontrollers-title-doesnt-work –

+0

Seguramente debe especificar el título del controlador de vista en el controlador de vista y luego en el controlador de navegación tendrá el título correcto aplicado? – ader

+0

Estoy especificando el título en el controlador de vista. Gracias. Sam. – shoughton123

Respuesta

38

he encontrado la respuesta en el final, fue:

self.tabBarController.navigationItem.title = @"title"; 
2
self.navigationItem.title = @"Your Title" 

Obras para todos los casos.

+1

Lo he intentado y no funciona. ¡Gracias de cualquier forma! – shoughton123

+1

Esto debería funcionar. Verifique para asegurarse de que 'self.navigationItem' no devuelva nada. Si es nulo, verifique sus conexiones. – Gobot

+0

Si está cargando desde un xib o desde un guión gráfico, intente arrastrar un elemento de navegación a su viewController, si no hay ninguno –

1

Para mí las siguientes obras excelentes:

iniciado 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 este hecho, en sus diferentes viewControllers initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil - método que puede cambiar el título con la siguiente línea:

self.title = @"Your Title"; 

Buena suerte.

+0

Desafortunadamente ya estoy bastante profundo en mi aplicación así que no puedo usar este método exacto, pero el mío no. t eso diferente. Sin embargo haciendo self.el título no funciona, self.title solo establece el título para la barra de pestañas. ¡Gracias! – shoughton123

+0

¿qué pasa con self.navigationController.title = @ "new title"? – pmk

0

Mire la clase UIViewController en los documentos. Hay una propiedad que apunta al UINavigationItem que tiene una propiedad que apunta al title. Si el puntero al elemento de navegación devuelve nulo, no debe haber conectado los controladores correctamente.

0

El self.title siempre establece el azulejo de la rootViewController objeto de su ViewController.

Si usted tiene su viewController & la rootViewController es UINavigationController, entonces self.title establecerá el título de UINavigationController.

Del mismo modo, si se ha inicializado un UITabViewController con los UIViewController objetos, entonces la voluntad self.title se aplica en el título del botón correspondiente en el índice, en UITabBar de UITabViewController.

Por lo tanto, se dice que, self.title se aplica en el objeto que contiene el viewController.

Cuestiones relacionadas