Не могу установить заголовок UINavigationController - PullRequest
3 голосов
/ 05 сентября 2011

Итак, вот как я настраиваю вещи в своем приложении. У меня есть UINavigationController, который имеет UITabBarController как rootViewController. rootViewController имеет 3 вкладки. Я пробовал много разных способов установить заголовок, начиная от:

self.title = @"title";

self.navigationController.title = @"title";

self.navigationItem.title = @"title";

и ничего из этого не работает

Почему это?

UPDATE:

по какой-то странной причине self.parentViewController.title = @"Map"; действительно сработало ....

Ответы [ 4 ]

3 голосов
/ 06 сентября 2011

Я предполагаю, что вы хотите установить текст, который появляется в центре панели навигации. Если это так, navigationItem определенно не то, что вы хотите. Это для настройки кнопок на панели навигации.

Менее очевидная часть установки заголовка состоит в том, что текст, который будет отображаться на панели навигации, является заголовком ViewController, который находится сверху. Другими словами, последний ViewController, который был выдвинут. Так что вы хотите установить self.title в ViewContoller. Вы можете сделать это ViewContoller init или viewDidLoad.

2 голосов
/ 26 февраля 2013

Я пытался NSLogging каждый атрибут заголовка из панели навигации, в конце концов у меня это работало, чтобы установить атрибут navBar.topItem.title.Конечно, navBar - это ссылка на UINavigationBar в моем IB.

0 голосов
/ 05 сентября 2011

Вот, пожалуйста ...

Вы должны написать следующую строку, чтобы добавить tabbarcontroller в appdelegate ..

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 ...

затем в "ViewDidLoad" вашего rootviewcontroller попробуйте self.title

Надеюсь, что это поможет вам ..

0 голосов
/ 05 сентября 2011

self.title должно быть то, что вы используете.

1.) Когда вы пытаетесь изменить заголовок?например, при нажатии кнопки табуляции?

2.) Где вы размещаете этот код?Это должно быть в методе viewDidLoad

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...