如何在导航栏的右侧添加多个UIBarButtonItems?

我想在UINavigationBar的右边有更多的UIBarButtonItem 。 我怎样才能做到这一点?

我正在尝试的示例如下所示 – 您可以注意到右上angular有多个button。

在这里输入图像说明

在swift中使用这个:

 override func viewDidLoad() { super.viewDidLoad() let editImage = UIImage(named: "plus")! let searchImage = UIImage(named: "search")! let editButton = UIBarButtonItem(image: editImage, style: .Plain, target: self, action: "didTapEditButton:") let searchButton = UIBarButtonItem(image: searchImage, style: .Plain, target: self, action: "didTapSearchButton:") navigationItem.rightBarButtonItems = [editButton, searchButton] } 

编写这样的动作函数:

 func didTapEditButton(sender: AnyObject){ ... } func didTapSearchButton(sender: AnyObject){ ... } 

我认为以上的任何事情都不会起作用

尝试这个

 var burgerItem = UIBarButtonItem(image: UIImage(named:"categories"), style: .Plain, target: self, action: "categories") var weatherItem = UIBarButtonItem(title: "Weather", style: .Plain, target: self, action: "weather") burgerItem.tintColor = UIColor.whiteColor() weatherItem.tintColor = UIColor.whiteColor() navigationItem.setRightBarButtonItems([burgerItem,weatherItem], animated: true) 

你必须使用navigationItem.setRightBarButtonItems并小心谨慎。 navigationItem必须是视图控制器。

 class testViewController:UIViewController { ovverride func viewDidLoad() { self.navigationItem.setRightBarButtonItems(... } } 
 -(void)viewDidLoad{ UIBarButtonItem *anotherButton1 = [[UIBarButtonItem alloc] initWithTitle:@"Button_1" style:UIBarButtonItemStylePlain target:self action:@selector(button_1:)]; UIBarButtonItem *anotherButton2 = [[UIBarButtonItem alloc] initWithTitle:@"Button_" style:UIBarButtonItemStylePlain target:self action:@selector(button_2:)]; self.navigationItem.rightBarButtonItems=@[anotherButton1,anotherButton2]; } 

这可能是在Objective-C帮助你,

 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { self.navigationItem.title = @"Title"; UIBarButtonItem *logOutButton = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStylePlain target:self action:@selector(ButtonClickedAtIndex1:)]; [logOutButton setTintColor:[UIColor blackColor]]; logOutButton.tag = 1; UIBarButtonItem *syncBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Sync" style:UIBarButtonItemStylePlain target:self action:@selector(ButtonClickedAtIndex1:)]; [syncBarButtonItem setTintColor:[UIColor blackColor]]; syncBarButtonItem.tag = 2; self.navigationItem.leftBarButtonItem = logOutButton; self.navigationItem.rightBarButtonItem = syncBarButtonItem; float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; if (systemVersion >= 7.0) { self.edgesForExtendedLayout = UIRectEdgeNone; self.navigationController.navigationBar.translucent = NO; } } return self; } 

在Swift 3中,你可以使用:

 let editImage = UIImage(named: "plus")! let searchImage = UIImage(named: "search")! let editButton = UIBarButtonItem(image: editImage, style: .plain, target: self, action: #selector(didTapEditButton)) let searchButton = UIBarButtonItem(image: searchImage, style: .plain, target: self, action: #selector(didTapSearchButton)) navigationItem.rightBarButtonItems = [editButton, searchButton]