如何在导航栏的右侧添加多个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]