У мене є панель навігації у поданні, і я хочу програмно змінити назву її елемента навігації.
Як це робиться?
Відповіді:
In viewDidLoad
self.title = @"Title";
Найпоширеніший спосіб використання навігаційної панелі - це навігаційний контролер. Ви також можете використовувати панель навігації як самостійний об’єкт у своєму додатку.
Отже, якщо у вас є UINavigationController, все, що вам потрібно зробити, щоб встановити заголовок панелі навігації (як пояснювалось у всіх попередніх відповідях)
self.navigationItem.title = @"title";
Але якщо у вас є автономна панель навігації, яка створюється програмно в межах об’єкта UIViewController, вам слід встановити початковий вигляд панелі навігації, створивши відповідні об’єкти UINavigationItem і додавши їх до стеку об’єктів панелі навігації, тобто
Зразок коду Objective-C для згаданих кроків:
UINavigationBar* navbar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 64)];
/* Create navigation item object & set the title of navigation bar. */
UINavigationItem* navItem = [[UINavigationItem alloc] initWithTitle:self.shoppingItem.name];
/* Create left button item. */
UIBarButtonItem* cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(onTapCancel:)];
navItem.leftBarButtonItem = cancelBtn;
/* Create left button item. */
UIBarButtonItem* doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(onTapDone:)];
navItem.rightBarButtonItem = doneBtn;
/* Assign the navigation item to the navigation bar.*/
[navbar setItems:@[navItem]];
/* add navigation bar to the root view.*/
[self.view addSubview:navbar];
Для швидкої версії автономної панелі навігації перегляньте цю відповідь .
Напишіть наведений нижче код у, viewDidLoad
або, можливо, буде краще підinitWithNibName:
self.navigationItem.title = @"title";
Дякую.
Ви також можете використовувати 👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Використовуйте його в методі ViewDidLoad
Формат:
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem; // Created on-demand so that a view controller may customize its navigation appearance.
Приклад:
self.navigationItem.title = @"Title here";
дуже важливе зауваження: переконайтеся, що ви внесли зміни, про які згадувалося вище, у батьківському поданні методу viewDidLoad контролера або в панелі навігації батьків у розкадруванні
Іноді ви можете отримати випадок, коли ви оновлюєте заголовок, і це не викликає жодного ефекту, це може бути, коли у вас є власний перегляд, topItem
тому, можливо, ви захочете оновити його так:(self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"