iPhone: Установка Заголовка Панели навигации

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

viewController.title = @"title text";

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

Спасибо!

84
задан Arthur Skirvin 17 February 2010 в 12:54
поделиться

3 ответа

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

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

или

bar.topItem.title = @"title text";
155
ответ дан 24 November 2019 в 08:24
поделиться

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

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

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

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

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

121
ответ дан 24 November 2019 в 08:24
поделиться

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

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

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

1
ответ дан 24 November 2019 в 08:24
поделиться