7

chcę dodać wiele UIBarButtonItem „s do UINavigationbar, a nie tylko w prawo i lewo przyciski:Jak dodać wiele elementów UIBarButtonItem do paska 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; 

dostaję SIGBRT na self.navigationController.navigationBar.items = items;

Jak mogę dodać wiele UIBarButtonItem s do UINavigationBar?

+0

możliwy duplikat [wielu UIBarButtonItems w UINavigationBar] (http://stackoverflow.com/questions/5100840/multiple-uibarbetttonems-in-uinavigationbar) –

Odpowiedz

16

Trzeba dodać UIBarButtonItem wystąpienie do UINavigationItem, a nie do UINavigationBar. Więc można to zrobić tak:

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

Jeśli chcesz, aby przyciski po prawej stronie, użyj rightBarButtonItems.

+0

Czy istnieje sposób na dodanie przycisków lewego paska bez konieczności cofania przycisku wstecz? – NHDaly

4

Należy użyć

self.navigationItem.leftBarButtonItems = items; 
-1

użyj addSubView na pasku nawigacyjnym.

+0

Nie jest to świetny pomysł ... te przyciski nie wyglądają ani nie zachowują się jak standardowe instancje 'UIBarButtonItem', a dodatkowo' UIBarButtonItem' nie jest podklasą 'UIView', więc nie można wywołać [navigationBar addSubview: logoButton ] '. –

+0

-1: Z "UINavigationBar' Dokumenty:' Gdy używasz paska nawigacji jako samodzielnego obiektu, jesteś odpowiedzialny za dostarczenie jego zawartości. W przeciwieństwie do innych typów widoków, nie dodajesz bezpośrednio subviews do paska nawigacji. Zamiast tego należy użyć elementu nawigacji (instancji klasy UINavigationItem), aby określić, które przyciski lub niestandardowe widoki mają być wyświetlane. " –

Powiązane problemy