2008-12-05 3 views
10

Я хотел бы положить UIButton в центр навигационной панели. Основываясь на документе, мне кажется, мне нужно установить вид заголовка и убедиться, что значение leftBarButtonItem равно нулю. Но это не работает для меня. Вот код.Почему не работает функция navigationItem.titleView?

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

ответ

26

Если вы исследуете свою кнопку, вы увидите, что с помощью метода удобства для его инициализации вы остаетесь с кнопкой 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; 
+0

Он работает, спасибо! – BlueDolphin 2008-12-06 23:24:01

7

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

Вы должны использовать

self.navigationItem.titleView = btn; 
4

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

self.parentViewController.navigationItem.titleView = titleView; 
Смежные вопросы