导航控制器内有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
,但我不确定导航控制器是否会在屏幕上首次出现后更新它的标题。
但是,你真的需要那个建筑吗?
通常UITabBarController
是root viewController
,如果你需要UINavigationControllers
他们是inside
需要有导航功能的标签。
是这样设计的。
与其他视图控制器不同,不应将标签栏界面安装为另一个视图控制器的子项。
答
对不起,我误解了你的问题,你要做的是从UITabBarDelegate
协议实现-tabBar:didSelectItem:
,然后根据按下的标签更改标题。
或者在控制器的viewWillAppear中的方法设置标题,你在做它的方式
这不是解决问题的引用。 self.title = @“标题”将为导航控制器和标签控制器设置标题。 – OdNairy 2011-12-26 17:32:01
刚编辑我的答案! – Ecarrion 2011-12-26 17:37:07
首先,我需要在应用程序启动时在导航控制器中显示标题... – OdNairy 2011-12-26 17:42:10