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

时间:2011-07-30 19:23:22

标签: iphone objective-c ios uinavigationcontroller

我有UINavigationController。我正在尝试在navigationBar的右侧添加多个按钮。我怎样才能做到这一点? 需要什么样的按钮? UIBarButtonUINavigationItem

6 个答案:

答案 0 :(得分:80)

从iOS5开始,您可以将一个条形按钮项目数组分配给导航项目的rightBarButtonItems(注意复数)属性。

答案 1 :(得分:28)

我在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不能那样工作。

答案 2 :(得分:15)

我确信我在开发人员参考中读到导航栏中的其他按钮不受欢迎。我现在找不到那段话。我自己没有这样做,但发现这个链接似乎正好勾勒出你需要做的事情:(http://www.mattdipasquale.com/blog/2010/11/02/how-to-add-multiple-uibarbuttonitems-to-uinavigationbar/)

您是否考虑过使用导航控制器的工具栏属性?

答案 3 :(得分:1)

将任何设计添加到XCode中的导航控制器都很容易。

在场景中添加UIView 将您需要的按钮添加到UIView 然后将UIView拖放到navigationController

中的右侧空格

答案 4 :(得分:0)

实际上甚至有点粗糙,但同时更简洁的做法:只需在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设置中为工具栏指定一个插座(只需创建一个),然后享受导航项目中出现的按钮。

答案 5 :(得分:0)

在Xcode 7.1中(可能更早),您可以通过拖动它们将多个项目添加到UINavigationBar的右侧或左侧。如果您拖动到正确的位置,您会得到一个小的垂直条,指示该项目将被插入。