如何更改独立于tabbar项目标题的uiviewcontroller标题

我设置我的视图控制器标题像这样在视图中加载:

self.title = @"my title"; 

在此之前,我在视图控制器和导航控制器中embedded了故事板中的标题。我将它设置为:“标题”;

当我点击包含视图控制器的选项卡时,标签栏项目和uiviewcontroller标题变为:我的标题

我想为视图控制器来改变,但标签栏项留在标题:标题

我怎样才能做到这一点?

这听起来像你想要在导航栏中的标题更改,但不是在标签栏中的标题。 这应该做到这一点。

 [self.navigationItem setTitle:@"my title"]; 

迅速:

 self.navigationItem.title = "My Title" 

所以对于那些还没有得到它的人(像我一样)

self.navigationItem.title = @"my title"; 设置导航栏标题。

self.tabBarItem.title = @"my title"; 设置标签栏标题。

self.title = @"my title"; 设置这两个

对于Swift使用这个,

 self.navigationItem.title = "Navigation bar title" self.title = "Tab bar title" 

我相信你可以做的视图控制器的viewDidLoad方法:

 self.title = @"my title"; self.tabBarItem.title = @"tab title"; 

这很晚了。 你可以让你的TabBarController作为自己的UITabBarControllerDelegate和UINavigationControllerDelegate,并分别embedded你的每个标签中的导航控制器。

。H:

 @interface YourTabBarController : UITabBarController <UITabBarControllerDelegate, UINavigationControllerDelegate> @end 

.M:

 - (void) viewDidLoad { // UITabBarControllerDelegate self.delegate = self; // UINavigationControllerDelegates yourNavigationController.delegate = self; ... } - (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController{ yourNavigationController.tabBarItem.title = @"Tab Bar Title"; ... } - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { yourNavigationController.tabBarItem.title = @"Tab Bar Title"; ... } 

基于一些快速testing,似乎这两个代表行动应该涵盖任何松散的情况,并会更新标题,无论您切换标签或浏览您的导航控制器。 为了完整起见 ,你也可以在didShowViewController中更新你的标题,但根据我所见,我不认为这是必要的。

可能有点晚(但)。

设置一个VC的标题改变导航的标题和tabBar。 (如果VC已经连接到两者)。

如果你想拥有单独的标题,你需要手动设置这些,你通常为VC设置标题,然后特别指定tabBarItem的标题,因为它是一个属性