导航控制器内有3个标签,没有标题

问题描述:

我有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; 

我该如何解决这个问题?

UINavigationController会显示它目前显示UIViewController的称号,这就是为什么你不能直接设置它。
您可能会尝试更改上的title,但我不确定导航控制器是否会在屏幕上首次出现后更新它的标题。

但是,你真的需要那个建筑吗?
通常UITabBarControllerroot viewController,如果你需要UINavigationControllers他们是inside需要有导航功能的标签。
是这样设计的。

与其他视图控制器不同,不应将标签栏界面安装为另一个视图控制器的子项。

UITabBarController Class Reference

对不起,我误解了你的问题,你要做的是从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