2011-12-26 69 views
0

我有3個標籤和主導航控制器。我實現的代碼:導航控制器內有3個標籤,沒有標題

UIViewController *monitorController = [[[MonitorController alloc] initWithNibName:@"MonitorController" bundle:nil] autorelease]; 
UIViewController *dashboardController = [[[DashboardController alloc] initWithNibName:@"DashboardController" bundle:nil] autorelease]; 
UIViewController *settingsController = [[[SettingsController alloc] initWithNibName:@"SettingsController" bundle:nil] autorelease]; 

self.tabBarController = [[[UITabBarController alloc] init] autorelease]; 
self.tabBarController.viewControllers = [NSArray arrayWithObjects:monitorController, dashboardController, settingsController, nil]; 

self.navigationController = [[[UINavigationController alloc] initWithRootViewController:self.tabBarController] autorelease]; 

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
self.window.rootViewController = self.navigationController; 
[self.window makeKeyAndVisible]; 

我想改變導航冠軍時,我選擇另一個水龍頭,但無變量(見下文)不工作(沒有在導航控制器的任何標題):

self.title = DASHBOARD_TITLE; 

    self.navigationController.title = DASHBOARD_TITLE; 

我該如何解決這個問題?

回答

2

UINavigationController會顯示它目前顯示UIViewController的稱號,這就是爲什麼你不能直接設置它。
您可能會嘗試更改上的title,但我不確定導航控制器是否會在屏幕上首次出現後更新它的標題。

但是,你真的需要那個建築嗎?
通常UITabBarControllerroot viewController,如果你需要UINavigationControllers他們是inside需要有導航功能的標籤。
是這樣設計的。

與其他視圖控制器不同,不應將標籤欄界面安裝爲另一個視圖控制器的子項。

UITabBarController Class Reference

0

對不起,我誤解了你的問題,你要做的是從UITabBarDelegate協議實現-tabBar:didSelectItem:,然後根據按下的標籤更改標題。

或者在控制器的viewWillAppear中的方法設置標題,你在做它的方式

+0

這不是解決問題的引用。 self.title = @「標題」將爲導航控制器和標籤控制器設置標題。 – OdNairy 2011-12-26 17:32:01

+0

剛編輯我的答案! – Ecarrion 2011-12-26 17:37:07

+0

首先,我需要在應用程序啓動時在導航控制器中顯示標題... – OdNairy 2011-12-26 17:42:10

相關問題