iPhone: настройка заголовка панели навигации

Всем привет. Я до сих пор довольно новичок в разработке iPhone, и у меня возникли проблемы с тем, как изменить название моей панели навигации. По другому вопросу на этом сайте кто-то рекомендовал использовать:

viewController.title = @"title text"; 

но это не работает для меня … Нужно ли добавлять UINavigationController для этого? Или, может быть, просто выход из моего подclassа UIViewController? Если это помогает, я определил навигационную панель в IB, и я пытаюсь установить ее заголовок в моем подclassе UIViewController. Это еще одна из тех простых вещей, которая дает мне головную боль. Поместить self.title = @ “текст заголовка”; in viewDidLoad и initWithNibName тоже не работают. Кто-нибудь знает, что происходит и как это происходит?

Благодаря!

Контроллер представления должен быть дочерним элементом некоторого UINavigationController, чтобы свойство .title в силу. Если UINavigationBar – просто представление, вам нужно нажать элемент навигации, содержащий заголовок, или изменить последний элемент навигации:

 UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

или

 bar.topItem.title = @"title text"; 

если вы все это делаете по коду в методе viewDidLoad для UIViewController вы должны добавить только self.title = @"title text";

что-то вроде этого:

 - (void)viewDidLoad { [super viewDidLoad]; self.title = @"title"; } 

вы также можете попробовать self.navigationItem.title = @"title";

также проверьте, не является ли ваш navigationItem не нулевым, и если вы установили пользовательский фон в панель навигации, проверьте, не указано ли это название.

Существует одна проблема с использованием self.title = @"title";

Если вы используете панель навигации и панель вкладок, указанная выше строка также изменяет метку для элемента панели табуляции. Чтобы избежать этого, используйте предложенный @testing

 self.navigationItem.title = @"MyTitle"; 

Если вы хотите изменить заголовок навигатора (а не название кнопки на панели навигации!), Этот код будет работать.

 self.navigationController.topViewController.title = @"info"; 

Если вы хотите изменить заголовок navBar внутри controllerа tabBar, сделайте следующее:

 -(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.topItem.title = @"myTitle"; } 

В моем приложении, основанном на навигации, я делаю это:

 myViewController.navigationItem.title = @"MyTitle"; 

У меня были controllerы навигации, встроенные в TabbarController. Это сработало

 [email protected]"title"; 

По умолчанию controller навигации отображает заголовок «topitem»,

так что в вашем режиме viewdidload вашего appdelegate вы можете. Я тестировал его, и он работает

 navController.navigationBar.topItem.title = @"Test"; 
 UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

Этот код работал.

Если вы работаете со Storiesboards, вы можете нажать на controller, перейти на вкладку свойств и установить там текст заголовка.

Я думаю, вам нужен динамический заголовок, поэтому вы не устанавливаете его в IB.

И я предполагаю, что ваш объект viewController – тот, который указан в NIB?

Возможно, попробовав установить его в фиктивное значение в IB, а затем отлаживать методы, чтобы увидеть, какой controller имеет фиктивное значение – при условии, что он отображается как заголовок …

Внутри TableViewController.m:

self.navigationController.navigationBar.topItem.title = @ “Blah blah Some Amazing title”;

Для всех ваших Swift-щиков, это отлично сработало для меня. Это, в частности, один из более коротких способов выполнить настройку названия:

 override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "presentLineItem" { print("Setting Title") var vc = segue.destinationViewController as! LineItemsTableViewController vc.navigationItem.title = "Line Item" } } 

Для меня self.titleLabel.text = @"New Title";

  • Получите данные Exif от UIImage - UIImagePickerController
  • Проблема UITableView при использовании отдельного делегата / источника данных
  • Как распечатать имя метода и номер строки и условно отключить NSLog?
  • Objective-c iPhone-процент кодирует строку?
  • Свойство запроса Parse NSURL
  • NSDateFormatter и yyyy-MM-dd
  • Как получить размер NSString
  • Разбор даты JSON на IPhone
  • Как получить счетчик ссылок NSObject?
  • iOS 8 Снимок снимка, который не был отображен, приводит к созданию пустого моментального снимка
  • Преобразование миллисекунд в NSDate
  • Interesting Posts

    Как удалить повторяющиеся текстовые строки из файлов размером более 4 ГБ?

    Vue: общие данные между разными страницами

    Превышено максимальное время выполнения в Google Apps Script

    Как вы проверяете двоичное дерево поиска?

    Как сделать ярлыки batcut, чтобы выбрать следующую систему входа – двойная загрузка 7 и 8

    Зашифрованные NSData для NSString в obj-c?

    Java Swing: как я могу реализовать экран входа в систему, прежде чем показывать JFrame?

    Как я могу изменить время до блокировки системы?

    Boost Spirit X3 не может скомпилировать повторную директиву с переменным коэффициентом

    Форматирование дат с помощью scale_x_date в ggplot2

    Как понимать происходит – до согласованного

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

    Одна активность и все остальные fragmentы

    MYSQL импортирует данные из csv, используя LOAD DATA INFILE

    Как ускорить процесс загрузки ftp?

    Давайте будем гением компьютера.