UINavigationController как установить заголовок - PullRequest
20 голосов
/ 18 октября 2010

У меня есть Controller / View для общего списка элементов, который можно расширить для отображения настраиваемого списка. Распечатка и навигация работают нормально ... но я не могу изменить заголовок UINavigationController. В универсальном контроллере:

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self.view addSubview: navigationController.view];
}
- (void)setNavigationTitle: (NSString *)title
{
    NSLog(@"set title: %@", title); // this works
    self.navigationController.title = title; // Nothing works here
}

Тогда расширенный класс делает ..

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self setNavigationTitle: @"Custom list"];
}

В навигационной панели в заголовке по-прежнему есть «Элемент»: (

Ответы [ 5 ]

58 голосов
/ 18 октября 2010

В вашем UIViewController есть свойство title, и именно оно будет отображаться NavigationController. Поэтому, когда вы помещаете новый UIViewController в стек навигации, установите для заголовка этого UIViewController то, что вам нужно.

В вашем случае это выглядит так:

[self setTitle:@"WhateverTitle"];
7 голосов
/ 18 августа 2016

Для тех, кто ищет решение Swift:

class CustomViewController: SuperViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    self.title = "My Custom Title"
  }
}

title должен быть установлен на UIViewController, а не на UINavigationController, внедряющем контроллер вида.

Документация: UIViewController Ссылка на класс: title Свойство

5 голосов
/ 18 октября 2010

использование

self.title = @"yourTitle";
4 голосов
/ 30 июня 2017

Свифт

title = "whateverTitle".Это UIViewController свойство экземпляра;вызывать в любое время.

Из документации :

Декларация
var title: String? { get set }

Обсуждение
Установите заголовок для удобочитаемой строки, которая описывает представление.Если у контроллера представления есть допустимый элемент навигации или элемент панели вкладок, присвоение значения этому свойству обновляет текст заголовка этих объектов.

0 голосов
/ 17 апреля 2013

Я знаю его старую ветку, но думал поделиться этим Установите метод 'self.title' в 'init' в производном классе UIVIewControler, это сработало для меня !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...