sto usando un UILabel per la titleView di una barra di navigazione (sto facendo semplice browser web in-app). Funziona bene, tranne che quando presento un controller di visualizzazione modale, titleView si sposta dal centro della barra di navigazione all'estrema sinistra (sotto il pulsante indietro). Ho provato in 3.0 e fino. Ecco codice rilevante:Perché navigationItem.titleView è allineato a sinistra quando viene visualizzato presentmodalviewcontroller?
- (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];
}
Screenshots:
Qualsiasi idea del perché questo sta accadendo? Grazie.
In - (void) loadView Ho aggiunto self.label = [[UILabel alloc] initWithFrame: self.navigationController.navigationBar.frame]; self.navigationItem.titleView = self.label; e poi ha cambiato solo il testo di self.label – blyabtroi