2009-10-08 11 views
55

hago esto en un UIViewController para uno de mis pestañas:self.title establece navigationController y el título de tabBarItem? ¿Por qué?

self.title = @"Welcome"; 

Sin embargo, se sobrescribir lo que tengo para el tabBarItem. He tratado:

self.tabBarItem.title = @"Home"; 

y

[self.tabBarItem initWithTitle:@"Home" image:[UIImage imageNamed:@"iconHome.png"] tag:0]; 

Pero aún así, self.title sobrescribe el tabBarItem, independientemente de si estoy tratando las dos últimas piezas de código tras el título se ha establecido. El código incluso se ejecuta sin errores, pero self.tabBarItem.title o initWithTitle no hace nada?

Respuesta

160

bien, lo he descubierto! Esto es lo que estoy haciendo:

self.title = @"Title for TabBarItem"; // TabBarItem.title inherits the viewController's self.title 
self.navigationItem.title = @"Title for NavigationBar"; 

la navigationBar heredaría self.title, a menos que se establezca lo contrario mediante self.navigationItem.title

+0

Me encontraba con exactamente el mismo problema cuando uso un UINavigationController dentro de un UITabController. Esto lo resolvió. –

+3

no lo sé, pero no funciona para mí :( – cV2

+0

Esto funciona para mí. Excelente para cambiar solo el título superior basado en el contenido, incluso si el controlador de vista no cambia. – lilbyrdie

0

Probar:

[self setTitle:@"Welcome"]; 

UITabBarItem *item = [[UITabBarItem alloc] initWithTitle:@"Home" image:[UIImage imageNamed: image] tag:0]; 
[self setTabBarItem:item]; 
[item release]; 
+0

Hmm. Tampoco funciona "Bienvenido" (título para uno mismo) es siempre el mismo para tabBar. Muy frustrante, en realidad. Hablé con un amigo dev quien dijo que la única forma en que podía hacerlo de manera diferente, era establecer el título del navigationController en IB, y luego no establecer self.title en el código. Pero eso parece extraño. Si nadie viene con una solución aquí, podría presentar un informe de error a Apple. – runmad

+0

Fuera de interés, ¿dónde estás haciendo la configuración de la barra de pestañas? El ejemplo anterior proviene del método init de mi controlador. No uso el constructor de interfaz para mis vistas (ya sea personalizadas o creadas en loadView). Esa puede ser la diferencia. – Kevin

+0

Sí, estoy usando IB, pero traté de iniciar las pestañas en cada UIViewController (NavigationController). Echaré un vistazo a lo que sucede si coloco el código anterior en un método init en el UIViewController ... – runmad

0

también estaba enfrentando el mismo problema, pero puedo solucionar este problema como este. Establecí el título y la imagen de tabBarItem justo después de que los creé en appDelegate.

Esto es lo que he hecho:

[viewController setTitle:@"controllerTitle"]; 
[[viewController tabBarItem] setTitle:@"Custome Title for tab"]; 
[[viewController tabBarItem] setImage:[UIImage imageNamed:@"tab.png"]]; 
52
//set nav item title 
self.navigationController.navigationBar.topItem.title = @"zurück"; 

esto lo hizo por mí: =) (nada de lo anterior trabajó)

Cuestiones relacionadas