如何更改独立于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的标题,因为它是一个属性