UINavigationBar - установить название программно? iPhone SDK 4


У меня есть приложение панели вкладок с разным видом на каждой вкладке. Каждое представление имеет UINavigationBar с заголовком, установленным на Interface Builder. Я хочу изменить заголовок на основе предложения в методе ViewDidLoad, поэтому если x { изменить заголовок }.

Я пробовал self.title = @"title", который я читал здесь на Stackoverflow-но это меняет название самого элемента панели вкладок.

Итак, как это делается?

10 73

10 ответов:

Я установил название программно с помощью кода что-то вроде этого:

navBar.topItem.title = @"title";

где navBar объявляется как IBOutlet UINavigationBar, связанный с навигационной панелью в interface builder. Это работало в моем приложении; однако, я не использовал панель вкладок.

если navBar.topItem-это элемент панели вкладок, я не вижу способа изменить заголовок, который появляется на панели навигации, не изменяя также заголовок на элементе панели вкладок, поскольку topItem и вкладка navBar элемент панели-это тот же объект.

использовать

self.navigationItem.title = @"the title";

в качестве параметра navBar.topItem.title не будет работать в любых обстоятельствах.

используйте этот :

    CGRect navBarFrame = CGRectMake(0, 0, self.tableView.frame.size.width, 44.0);
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:navBarFrame];

    UINavigationItem *navItem = [UINavigationItem alloc];
    navItem.title = @"Your Title";

    [navBar pushNavigationItem:navItem animated:false];

[self.view addSubView:navBar]; 

или

self.tableView.tableHeaderView = navBar; etc

если класс является типом UIViewController, то вы можете установить заголовок, как указано в методе viewDidLoad.

    [self setTitle:@"My Title"];

создать IBOutlet of UINavigationBar

navigationBar.topItem.title = @"Title";

надеюсь, что это помогает.

в ViewDidLoad вашего ViewController.просто писать

self.navigationItem.title=@"Hello World";

вот вывод:

enter image description here

я использовал следующие:

self.navigationController.navigationBar.topItem.title = @"Title";

однако мне также пришлось вызвать его в блоке отправки, поскольку он не изменит заголовок при вызове в viewDidLoad без него.

обратите внимание, что для того, чтобы заголовок отображался вообще, делегат навигационного контроллера должен быть установлен на самой панели навигации, иначе заголовок никогда не будет отображаться!

вы также можете просто установить заголовок в ViewDidLoad под вашим ViewController или TableViewController с помощью

_title = @"Title";

или

self.title = @"Title";

попробуйте это,

self.navigationItem.title = @"Your title";