Estoy usando un UILabel para el título Vista de una barra de navegación (estoy haciendo un simple navegador web en la aplicación). Funciona bien, excepto que cuando presento un controlador de vista modal, el titleView se desplaza desde el centro de la barra de navegación a la extrema izquierda (debajo del botón de retroceso). He probado en 3.0 y más. Aquí está el código correspondiente:¿Por qué navigationItem.titleView se alinea a la izquierda cuando se llama a showmodalviewcontroller?
- (void)viewDidLoad {
[super viewDidLoad];
// Title view label
CGRect labelFrame = CGRectMake(0.0, 0.0, 120.0, 36.0);
UILabel *label = [[[UILabel alloc] initWithFrame:labelFrame] autorelease];
label.font = [UIFont boldSystemFontOfSize:14];
label.numberOfLines = 2;
label.backgroundColor = [UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor whiteColor];
label.shadowColor = [UIColor blackColor];
label.shadowOffset = CGSizeMake(0.0, -1.0);
label.lineBreakMode = UILineBreakModeMiddleTruncation;
self.navigationItem.titleView = label;
}
-(void)displayComposerSheet:(NSString*)mailto
{
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
[self presentModalViewController:picker animated:YES];
[picker release];
}
Imágenes:
Alguna idea de por qué ocurre esto? Gracias.
En (vacío) loadView He agregado self.label = [[UILabel alloc] initWithFrame: self.navigationController.navigationBar.frame]; self.navigationItem.titleView = self.label; y luego solo cambié el texto de self.label – blyabtroi