Установить заголовок NavController независимо от заголовка TabBar - PullRequest
4 голосов
/ 27 сентября 2011

Я работаю через довольно типичный процесс создания контроллеров представления и связанных с ними контроллеров навигации программным путем, а затем добавляю контроллеры навигации в tabBarController.

self.tabBarController = [[[UITabBarController alloc] init] autorelease];
[self.tabBarController setHidesBottomBarWhenPushed: YES];

FirstViewController * firstView = [[[FirstViewController alloc] init] autorelease];
firstView.title = @"First";
firstView.tabBarItem.image = [UIImage imageNamed:@"icon_first_view.png"];
UINavigationController * firstViewNav = [[[UINavigationController alloc] initWithRootViewController:firstView] autorelease];

[tabBarController setViewControllers:[NSArray arrayWithObjects: firstViewNav, nil]];

Это прекрасно работает, и заголовок NavigationController и заголовок TabBar будут иметь значение «Первый». Теперь я хотел бы изменить заголовок контроллера навигации на «FooBar» и оставить заголовок панели вкладок как «Первый».

Я пробовал:

firstViewNav.navigationItem.title = @"FooBar";

Но это, похоже, не меняет этого. Если я изменяю заголовок фактического ViewController, управляемого этим контроллером nav (firstView.title), то изменяются и заголовок TabBar, и заголовок Navbar, что нежелательно.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 18 октября 2013

Как здесь ответили: self.title устанавливает заголовок navigationController и tabBarItem? Почему?

self.title = @"Title for TabBarItem"; // TabBarItem.title inherits the viewController's self.title
self.navigationItem.title = @"Title for NavigationBar";
0 голосов
/ 27 сентября 2011

Добавьте элемент панели вкладок в контроллер навигации и установите заголовок TabBarItem на то, что вы хотите, чтобы метка панели вкладок читалась. Обычно я делаю это в NIB, но это должно работать, если вы делаете это программно.

Установите заголовок элемента навигации в соответствии с тем, что вы хотите в тексте навигационной панели. Вы также можете изменить этот текст, когда появится представление, например, если вы хотите, чтобы оно изменилось.

Как вы обнаружили, НЕ устанавливайте заголовок контроллера представления, так как это переопределит оба других значения.

0 голосов
/ 27 сентября 2011

просто скройте панель навигации и добавьте панель инструментов с нужным названием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...