Пользовательская панель навигации iPhone с пользовательскими элементами UIBarButtonItems - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь создать пользовательскую панель навигации с заголовком и двумя пользовательскими баритемами. Что я сделал до сих пор:
1. подкласс UINavigationBar
2. переопределить -(void) drawRect:(CGRect)rect метод, чтобы нарисовать изображение в качестве фона

Теперь я застреваю, когда делаю правую кнопку панели.
В моем классе CustomBar я переопределил pushNavigationItem метод следующим образом:

- (void)pushNavigationItem:(UINavigationItem *)item animated:(BOOL)animated {
     [super pushNavigationItem:item animated:NO];
     item.rightBarButtonItem.customView.frame = CGRectMake(250, 5, 60,30); 
}

и в моем контроллере вида я сделал что-то вроде:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
self.navigationController.navigationItem.rightBarButtonItem = barButton;
[self.navigationController.navigationBar pushNavigationItem:self.navigationItem animated:NO]

но я всегда получаю SIGABRT при звонке

[super pushNavigationItem:item animated:NO];

Если я пропущу эту строку, все будет нормально, но на панели навигации нет кнопки.

Как правильно добавить пользовательский элемент кнопки панели в пользовательскую панель навигации?

EDIT: Для пояснения я добавил изображение.

Это то, что мне нужно. enter image description here

Я пытаюсь создать кнопку выхода из системы справа

1 Ответ

0 голосов
/ 24 февраля 2012

Вы пытались удалить navigationController при настройке элемента? Я делал это для установки заголовка, но никогда не получал заголовок.

Попробуйте [[self navigationItem] setRightBarButtonItem:yourButton];

В вашем случае:

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
self.navigationItem.rightBarButtonItem = barButton;`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...