Опитах всичко, за което мога да мисля тук.
self.navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
self.navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
self.navigationBar.topItem.title = @"Title";
self.navigationItem.title = @"Title";
self.title = @"Title";
self.navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
self.navigationController.navigationBar.topItem.title = @"Title";
[self.view addSubview:self.navigationBar];
Опитах всички тези неща с надеждата, че някой ще работи, но никой от тях няма. Как да променя заглавието на тази навигационна лента? Това е вътре в метода на UIViewController.
Отговори:
1 за отговор № 1Трябва да зададете масив на персонализираната ви навигация в NavigationBar.Трябва да преминете в масив с един елемент, който има посоченото от вас заглавие:
UINavigationBar *bar = [[[UINavigationBar alloc] init] autorelease];
UINavigationItem *navItem = [[[UINavigationItem alloc] initWithTitle:@"Title"] autorelease];
bar.items = [NSArray arrayWithObject:navItem];
1 за отговор № 2
Това винаги работи за мен:
self.navigationItem.title = @"Title";
0 за отговор № 3
Не знам точно защо искаш да я включиш, обикновено бих предпочел да поставим този код в прегледа Дидолад.
Това, което е проблематично с вашетокодът е, че когато заредите UINavigationBar, той няма елементи в масивите си. По този начин всъщност изпращате съобщение до нула, което няма да срине програмата ви, но няма да направи нищо.
Това е, което правя.
- (void)viewDidLoad
{
[super viewDidLoad];
UINavigationBar *navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];
navigationBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[navigationBar setItems:[NSArray arrayWithObject:[[UINavigationItem alloc]initWithTitle:@"Title"]]];
navigationBar.topItem.titleView.backgroundColor = [UIColor blueColor];
[self.view addSubview:navigationBar];
}
0 за отговор № 4
Ако след това използвате контролер за навигация
self.title = @"My Title";
трябва да го направите в iOS 7.