Подтвердить что ты не робот

Как программно настроить заголовок панели навигации?

У меня есть панель навигации в представлении, и я хочу программно изменить ее название элемента навигации.

Как это делается?

4b9b3361

Ответ 1

В вашем UIViewController

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

Ответ 2

Версия Swift 3:

Если вы используете навигационную панель без контроллера навигации, вы можете попробовать следующее:

navigationBar.topItem?.title = "Your Title"

Надеемся на помощь.

Ответ 3

In viewDidLoad

  self.title = @"Title";

Ответ 4

От Документация для Apple:

Самый распространенный способ использования навигационной панели - с помощью навигации контроллер. Вы также можете использовать панель навигации как отдельный объект в вашем приложении.

Итак, если у вас есть UINavigationController, все, что вам нужно сделать, чтобы установить заголовок панели навигации (как объяснялось во всех предыдущих ответах)

self.navigationItem.title = @"title";

Но если у вас есть автономная панель навигации, созданная программно внутри объекта UIViewController, вы должны установить начальный вид панели навигации, создав соответствующие объекты UINavigationItem и добавив их в стек объекта панели навигации, т.е.

  • Создайте экземпляр панели навигации (UINavigationBar)
  • Создайте экземпляр элемента навигационной панели (UINavigationItem), который управляет кнопками и представлениями, которые будут отображаться в объекте UINavigationBar. Обратите внимание, что вы устанавливаете заголовок на этом шаге.
  • (Необязательный шаг) Добавьте правую/левую кнопки (экземпляры UIBarButtonItem) в элемент навигационной панели.

Пример 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];

Для версии автономной навигационной панели Swift выберите этот ответ.

Ответ 5

Введите приведенный ниже код в viewDidLoad или может быть лучше в initWithNibName:

  self.navigationItem.title = @"title";

Спасибо.

Ответ 6

Вы также можете использовать 👇🏻

[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];

Ответ 7

Этот код не работает для меня

self.navigationItem.title = @"Title here";

Но это сработало.

self.title = "Title Name"

Ответ 8

В вашем UIViewController viewDidLoad

self.navigationItem.title = "The title";//In swift 4

сделает свое дело

Вы также можете поместить приведенный выше оператор в делегат приложения для глобальной репликации.

Ответ 9

Использовать его в методе 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";

Ответ 10

Очень важно отметить: убедитесь, что вы внесли изменения, упомянутые выше, в родительском представлении. Тип контроллера ViewDidLoad или панель навигации родителей в раскадровке

Ответ 11

Иногда вы можете получить случай, когда вы обновляете заголовок, и это не вызывает никакого эффекта, это может быть, когда у вас есть пользовательское представление в topItem, поэтому вы можете его обновить следующим образом: (self.navigationController?.navigationBar.topItem?.titleView as? UILabel)?.text = "My Happy New Title"