2014-02-21 166 views
0

我有一个嵌入导航控制器的标签栏控制器。 我想在标签中的视图控制器中设置导航中的标题。如何在视图控制器内设置导航栏标题?

如果我使用:

self.title = "ABC"; 

self.tabBarItem.title = "ABC"; 

底部的选项卡的标题设置为“ABC”,而不是标题在顶部导航栏。

但是,我只想在导航栏中设置标题,而不是在底部的标签。

我怎么能这样做?

enter image description here

+0

为什么选项卡嵌入在导航栏中?通常每个标签都有自己的导航... – Wain

+1

糟糕的设计,可能。您应该将导航控制器嵌入到选项卡栏控制器中,而不是相反。 – duci9y

+0

@很好问题...我试过了,但是如果我将视图控制器嵌入到导航控制器中,并且在导航控制器中嵌入了TabBar控制器,但它不会显示选项卡......?或者我错过了什么......?我应该注意到,我正在使用SASlideMenu,这可能是通常的方式不起作用的原因? – mrd

回答

2

您必须将导航项传递给链。

UINavigationController显示属于它的topViewController的navigationItem,它是UITabBarController。

UITabBarController在其选项卡中显示navigationItem标题。所以,你需要做的是确保该tabBarController的navigationItem是它的selectedViewController的navigationItem

因此,要回顾:

UINavigationController title = topViewController.navigationItem.title 

UITabBarController tabTitle = selectedViewController.navigationItem.title 

UIViewController title = navigationItem.title 
+4

解决方法是:'UITabBarController * tabController =(UITabBarController *)self.parentViewController; tabController.navigationItem.title = @“ABC”;' – mrd

+0

这个效果很好 –

2

可以使用self.navigationItem.title设置。

[email protected]"ABC"; 
+0

如果视图控制器实际上不在导航控制器中,则不能。导航控制器目前将从标签控制器获取标题。 – Wain

+0

@Wain:我没有得到你的评论?不能正确理解你想说什么? – Optimistic

+0

@Optimistic,保存了我的1小时,谢谢 –

0

你可能使用了错误的元素,尝试用下面的例子:

self.tabBarController.title = @"YOUR_TITLE"; 
相关问题