iOS – UINavigationController添加多个正确的项目?

我有一个UINavigationController 。 我试图在我的导航栏的右侧添加多个button。 我怎样才能做到这一点? 需要什么样的button? UIBarButtonUINavigationItem

我确定我在开发人员参考中看到,导航栏中的其他button是皱眉。 我现在找不到这段经文。 我自己并没有这样做,但发现这个链接,似乎大纲正是你需要做的: (http://www.mattdipasquale.com/blog/2010/11/02/how-to-add-multiple-uibarbuttonitems -to-UINavigationBar的/)

你有没有考虑使用导航控制器的工具栏属性?

从iOS5开始,您可以为导航项目的rightBarButtonItems (注意复数)属性指定一个条形button项目的数组。

我在Xcode 4.5,iOS 6中使用JRTurtons的答案,并像这样实现它,它的工作原理:

 // Two buttons at the right side of nav bar UIBarButtonItem *addAttachButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAttachmentClicked:)]; UIBarButtonItem *sendButton = [[UIBarButtonItem alloc] initWithTitle:LS(@"Send") style:UIBarButtonItemStyleBordered target:self action:@selector(sendClicked:)]; self.navigationItem.rightBarButtonItems = @[addAttachButton,sendButton]; 

但是,我应该提到的是,UIBarButtonSystemItemPageCurl不起作用。

在XCode的导航控制器中添加任何devise都很简单。

添加一个UIView到你的场景中添加你需要的button到UIView,然后拖放UIView到navigationController的右边空白处

实际上甚至有一点点黑客,但同时也是更简洁的方式来做这件事情:只要在UINavigationItem上定义一个类别,就像:

UINavigationItem + Toolbars.h:

 @interface UINavigationItem (Toolbars) @property (nonatomic, retain) IBOutlet UIToolbar * rightToolBar; @property (nonatomic, retain) IBOutlet UIToolbar * leftToolBar; - (void)setRightToolBar:(UIToolbar *)_rightToolBar; - (UIToolbar *)rightToolBar; - (void)setLeftToolBar:(UIToolbar *)_leftToolBar; - (UIToolbar *)leftToolBar; @end 

UINavigationItem + Toolbars.m:

 #import "UINavigationItem+Toolbars.h" @implementation UINavigationItem (Toolbars) - (void)setRightToolBar:(UIToolbar *)_rightToolBar { self.rightBarButtonItems = _rightToolBar.items; } - (UIToolbar *)rightToolBar { return nil; } - (void)setLeftToolBar:(UIToolbar *)_leftToolBar { self.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithCustomView:_leftToolBar] autorelease]; } - (UIToolbar *)leftToolBar { return nil; } @end 

做完这些之后,只需在IB设置工具栏中分配一个sockets(只需创build一个),并享受导航项目上出现的button。

在Xcode 7.1中(可能甚至更早),只需拖动它们就可以将多个项目添加到UINavigationBar的右侧或左侧。如果拖动到正确的位置,您会看到一个竖条,指示该项目的位置被插入。