无法设置UINavigationController标题

时间:2011-09-05 06:34:10

标签: iphone objective-c ipad uinavigationcontroller

所以这就是我在应用中设置内容的方式。我的UINavigationController UITabBarControllerrootViewControllerrootViewController中有3个标签。我尝试了许多不同的方法来设置标题,范围从:

self.title = @"title";

self.navigationController.title = @"title";

self.navigationItem.title = @"title";

并且没有任何效果

为什么会这样?

更新

出于某种奇怪的原因self.parentViewController.title = @"Map";实际上有效......

4 个答案:

答案 0 :(得分:3)

我猜你想要的是设置出现在导航栏中心的文字。如果是这样,navigationItem肯定不是你想要的。这是用于在导航栏中设置按钮。

设置标题的不太明显的部分是,导航栏中显示的文本是顶部的ViewController的标题。换句话说,推送的最后一个ViewController。因此,您要做的是在self.title中设置ViewContoller。您可以ViewContoller initviewDidLoad

执行此操作

答案 1 :(得分:2)

我在导航栏中尝试了NSLogging每个title属性,最终对我来说,它设置了navBar.topItem.title属性。当然,navBar是我IB中对UINavigationBar的引用。

答案 2 :(得分:0)

self.title应该是您使用的。

1。)你什么时候试图更改标题?例如,按下标签按钮?

2。)你在哪里放这个代码?这应该在viewDidLoad方法

答案 3 :(得分:-2)

来了......

您必须编写以下行以在appdelegate中添加tabbarcontroller ..

mTabBar = [[UITabBarController alloc] init];
    NSMutableArray *localViewControllersArray = [[NSMutableArray alloc] initWithCapacity:3];


    TSDetailTaskController *mTSDetailTaskController = [[TSDetailTaskController alloc]initWithNibName:@"TSDetailTaskController" bundle:nil];
    UINavigationController *mTaskNavBar=[[UINavigationController alloc]initWithRootViewController:mTSDetailTaskController];
    mTaskNavBar.tabBarItem.title=@"Task List";
    mTaskNavBar.tabBarItem.image =[UIImage imageNamed:@"glyphicons_114_list.png"];
    [mTSDetailTaskController release];

    mTSSearchController=[[TSSearchController alloc]initWithNibName:@"TSSearchController" bundle:nil];
    UINavigationController *mSearchNavBar=[[UINavigationController alloc]initWithRootViewController:mTSSearchController];
    mSearchNavBar.title=@"Search";
    mSearchNavBar.tabBarItem.image=[UIImage imageNamed:@"glyphicons_009_search.png"];
    [mTSSearchController release];

    TSSettingController *mTSSettingController = [[TSSettingController alloc]initWithNibName:@"TSSettingController" bundle:nil];
    UINavigationController *mSettingNavBar=[[UINavigationController alloc]initWithRootViewController:mTSSettingController];
    mSettingNavBar.tabBarItem.title=@"Setting";
    mSettingNavBar.tabBarItem.image=[UIImage imageNamed:@"glyphicons_280_settings.png"];
    [mTSSettingController release];


    [localViewControllersArray addObject:mTaskNavBar];  
    [localViewControllersArray addObject:mSearchNavBar];
    [localViewControllersArray addObject:mSettingNavBar];

    [mTaskNavBar release];
    [mSearchNavBar release];
    [mSettingNavBar release];


    mTabBar.viewControllers = localViewControllersArray;
    mTabBar.view.autoresizingMask==(UIViewAutoresizingFlexibleHeight);

    [localViewControllersArray release];


    [window addSubview:mTabBar.view];
    [self.window makeKeyAndVisible];
    return YES;

我想你可以根据UINavigation控制器类型创建你的项目...

然后在你的rootviewcontroller的“ViewDidLoad”中 试试self.title

希望这个嗯帮助你...