Установить заголовок UINavigationBar - PullRequest
6 голосов
/ 23 марта 2012

Можно ли установить self.navigationItem.title = @"MyTitle"; после загрузки вида?

Я использую панель поиска, и в том же виде я отображаю UITableView, используя результаты поиска. Поэтому я хочу установить текстовое значение панели поиска в качестве заголовка панели навигации после загрузки результатов поиска.

Я использую iOS 4.3.

Ответы [ 7 ]

15 голосов
/ 08 мая 2012

Просто установите заголовок UINavigationBar следующим образом:

navBar.topItem.title = @"sample string";
2 голосов
/ 20 декабря 2012

Обычно titleView будет UILabel, так что вы можете получить его, привести его и установить его текст.

По какой-то причине у меня были проблемы с использованием этого в viewDidLoad, добавление его к viewWillAppear, похоже, помогло.

((UILabel *)self.navigationController.navigationBar.topItem.titleView).text = @"your title here"
2 голосов
/ 25 марта 2012

Нашел решение.Я подписался на пост Педро Валентини .

Это то, что я сделал,

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 120, 30)];
label.textAlignment = UITextAlignmentCenter;
[label setFont:[UIFont boldSystemFontOfSize:16.0]];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
[label setText:text];
[self.navigationController.navigationBar.topItem setTitleView:label];
[label release]; 
1 голос
/ 23 марта 2012

Да. Вы можете динамически устанавливать заголовок navigationItem в течение любой части жизненного цикла UIViewController. Операция set обрабатывается методом get, который отправляет сообщение в UINavigationController для загрузки содержимого представления панели навигации, чтобы отразить новый заголовок.

0 голосов
/ 11 января 2017
    self.navigationItem.title = @"Terms and Conditions";
0 голосов
/ 19 марта 2013
_navBar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
_navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
UINavigationItem *navItem = [UINavigationItem alloc];
navItem.title = @"Title";

Попробуйте это.

0 голосов
/ 23 марта 2012

Это должно сработать, если я "внутри" a UINavigationController.

...