У меня есть панель навигации в представлении, и я хочу программно изменить ее название элемента навигации.
Как это делается?
У меня есть панель навигации в представлении, и я хочу программно изменить ее название элемента навигации.
Как это делается?
В вашем UIViewController
self.navigationItem.title = @"The title";
Версия Swift 3:
Если вы используете навигационную панель без контроллера навигации, вы можете попробовать следующее:
navigationBar.topItem?.title = "Your Title"
Надеемся на помощь.
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];
Для версии автономной навигационной панели Swift выберите этот ответ.
Введите приведенный ниже код в viewDidLoad
или может быть лучше в initWithNibName:
self.navigationItem.title = @"title";
Спасибо.
Вы также можете использовать 👇🏻
[self.navigationController.navigationBar.topItem setTitle:@"Titlet"];
Этот код не работает для меня
self.navigationItem.title = @"Title here";
Но это сработало.
self.title = "Title Name"
В вашем UIViewController viewDidLoad
self.navigationItem.title = "The title";//In swift 4
сделает свое дело
Вы также можете поместить приведенный выше оператор в делегат приложения для глобальной репликации.
Использовать его в методе 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"