Почему не работает navigationItem.titleView? - PullRequest
11 голосов
/ 05 декабря 2008

Я хотел бы вставить UIB-кнопку в центр панели навигации. Основываясь на документе, кажется, мне нужно установить представление заголовка и убедиться, что leftBarButtonItem равен nil. Но это не работа для меня. Вот код.

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"List" forState:UIControlStateNormal];
self.navigationItem.leftBarButtonItem = nil;
[self.navigationItem.titleView addSubview:btn];

Ответы [ 3 ]

28 голосов
/ 06 декабря 2008

Если вы исследуете свою кнопку, вы обнаружите, что с помощью удобного метода для ее инициализации у вас останется кнопка 0x0, которая расположена в 0,0 в пределах вида, к которому она добавляется. Перед этим вы должны определить содержимое свойства frame кнопки. Смотрите код ниже:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn.frame = CGRectMake(0, 0, 400, kCustomButtonHeight);
[btn setTitle:@"list" forState:UIControlStateNormal];
self.navigationItem.titleView = btn;
7 голосов
/ 26 февраля 2015

В моем случае я пытался установить его в дочернем контроллере представления, это исправило

self.parentViewController.navigationItem.titleView = titleView;
7 голосов
/ 05 декабря 2008

Вид элемента навигации по умолчанию установлен на ноль.

Вам нужно использовать

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