Почему не работает функция navigationItem.titleView?
Я хотел бы добавить UIButton в центр навигационной панели. Основываясь на документе, мне кажется, мне нужно установить вид заголовка и убедиться, что значение leftBarButtonItem равно нулю. Но это не работает для меня. Вот код.
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:@"List" forState:UIControlStateNormal];
self.navigationItem.leftBarButtonItem = nil;
[self.navigationItem.titleView addSubview:btn];
Ответы
Ответ 1
Если вы исследуете свою кнопку, вы обнаружите, что с помощью метода удобства для ее инициализации вы остаетесь с помощью кнопки 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;
Ответ 2
В представлении элемента navigationItem по умолчанию установлено значение nil.
Вам нужно использовать
self.navigationItem.titleView = btn;
Ответ 3
В моем случае я пытался установить его в контроллере дочернего представления, это зафиксировало его
self.parentViewController.navigationItem.titleView = titleView;