2014-02-21 218 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"; 
相關問題