7

我想很多UIBarButtonItem的添加到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; 

我得到一个SIGBRTself.navigationController.navigationBar.items = items;

我怎样才能添加多个UIBarButtonItem s到一个UINavigationBar

+0

[UINavigationBar中的多个UIBarButtonItems]的可能的重复(http://stackoverflow.com/questions/5100840/multiple-uibarbuttonitems-in-uinavigationbar) – 2012-03-26 05:59:10

回答

16

您需要UIBarButtonItem实例添加到UINavigationItem,而不是一个UINavigationBar。所以,你可以做到这一点是:如果你希望你的右边按钮

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

,使用rightBarButtonItems

+0

有没有一种方法来添加左栏按钮而不使后退按钮消失? – NHDaly 2013-04-10 05:12:08

4

您应该使用

self.navigationItem.leftBarButtonItems = items; 
-1

在导航栏中使用addSubView。

+0

不是一个好主意......这些按钮看起来或行为不像标准的'UIBarButtonItem'实例,另外,'UIBarButtonItem'不是'UIView'的子类,所以你不能调用[navigationBar addSubview:logoButton ]'。 – 2012-03-27 02:12:27

+0

-1:从'UINavigationBar'文档:'当您使用导航栏作为独立对象时,您负责提供其内容。与其他类型的视图不同,您不直接将子视图添加到导航栏。相反,您使用导航项目(UINavigationItem类的一个实例)来指定要显示的按钮或自定义视图。 – 2013-02-05 20:32:08

相关问题