7

Я хочу добавить много UIBarButtonItem «S к UINavigationbar, а не только правая и левая кнопки:Как добавить несколько UIBarButtonItem в UINavigationBar?

logoButton = [[UIBarButtonItem alloc] initWithTitle:@"A Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonAClicked:)]; 

logoButton2 = [[UIBarButtonItem alloc] initWithTitle:@"B Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonBClicked:)]; 

logoButto3 = [[UIBarButtonItem alloc] initWithTitle:@"C Button" style:UIBarButtonItemStyleBordered target:self action:@selector(logoButtonCClicked:)]; 

self.navigationController.navigationBarHidden = NO; 

self.title = @"Title"; 

NSArray* items = [[NSArray alloc] initWithObjects:logoButtonA, logoButtonB, logoButtonC, nil]; 
self.navigationController.navigationBar.items = items; 

Я получаю SIGBRT на self.navigationController.navigationBar.items = items;

Как я могу добавить несколько UIBarButtonItem сек в UINavigationBar?

+0

Возможный дубликат [Несколько элементов UIBarButtonItems в UINavigationBar] (http://stackoverflow.com/questions/5100840/multiple-uibarbuttonitems-in-uinavigationbar) –

ответ

16

Вам нужно добавить UIBarButtonItem экземпляр в UINavigationItem, а не к UINavigationBar. Таким образом, вы можете сделать это так:

NSArray *buttonArray = [NSArray arrayWithObjects:logoButton, logoButton2, logoButton3, nil]; 
self.navigationItem.leftBarButtonItems = buttonArray; 

Если вы хотите, чтобы ваши кнопки справа, используйте rightBarButtonItems.

+0

Есть ли способ добавить кнопки левой панели, не отбрасывая кнопку «Назад»? – NHDaly

4

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

self.navigationItem.leftBarButtonItems = items; 
-1

использовать addSubView в навигационной панели.

+0

Не отличная идея ... эти кнопки не выглядят или ведут себя как стандартные экземпляры 'UIBarButtonItem', и, кроме того,' UIBarButtonItem' не является подклассом 'UIView', поэтому вы не можете вызвать [navigationBar addSubview: logoButton ] '. –

+0

-1: Из документов 'UINavigationBar':' Когда вы используете панель навигации в качестве автономного объекта, вы несете ответственность за предоставление его содержимого. В отличие от других типов представлений, вы не добавляете subviews в панель навигации напрямую. Вместо этого вы используете элемент навигации (экземпляр класса UINavigationItem), чтобы указать, какие кнопки или пользовательские представления вы хотите отображать. ' –

Смежные вопросы