2008-12-05 16 views
10

Me gustaría poner un UIButton en el centro de la barra de navegación. Basado en el documento, parece que necesito establecer la vista de título y me aseguro de que leftBarButtonItem sea nulo. Pero no es trabajo para mí. Aquí está el código.¿Por qué no funciona el navigationItem.titleView?

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
[btn setTitle:@"List" forState:UIControlStateNormal]; 
self.navigationItem.leftBarButtonItem = nil; 
[self.navigationItem.titleView addSubview:btn]; 

Respuesta

26

Si usted examina su botón, encontrará que al utilizar el método de conveniencia para inicializar lo que se quedan con un botón de 0x0 que se sitúa en 0,0 dentro de la límites de la vista a la que se está agregando. Antes de hacerlo, debe definir el contenido de la propiedad frame del botón. Ver el código de abajo:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
btn.frame = CGRectMake(0, 0, 400, kCustomButtonHeight); 
[btn setTitle:@"list" forState:UIControlStateNormal]; 
self.navigationItem.titleView = btn; 
+0

Funciona, gracias! – BlueDolphin

+1

Aún así, no se puede hacer clic en btn. – Abha

7

La vista de la navigationItem está configurado, por defecto, a cero.

Es necesario utilizar

self.navigationItem.titleView = btn; 
4

En mi caso yo estaba tratando de establecer en un controlador de vista del niño, esto se fija

self.parentViewController.navigationItem.titleView = titleView; 
Cuestiones relacionadas