带有多个按钮的导航栏
Posted
技术标签:
【中文标题】带有多个按钮的导航栏【英文标题】:Navigation bar with multiple buttons 【发布时间】:2013-01-15 01:45:00 【问题描述】:我有一个带有左右按钮的导航栏,我需要在右侧按钮旁边放另一个按钮。有谁知道我该怎么做?这里有一些代码可以提供帮助:
- (id)init
self = [super initWithStyle:UITableViewStyleGrouped];
if (self)
_pinArray = [[NSArray alloc]init];
_pinArray = [Data singleton].annotations;
UIBarButtonItem *right = [[UIBarButtonItem alloc]initWithTitle:@"Map"
style:UIBarButtonItemStylePlain
target:self
action:@selector(goToMap:)];
self.navigationItem.rightBarButtonItem = right;
UIBarButtonItem *left = [[UIBarButtonItem alloc]initWithTitle:@"Menu"
style:UIBarButtonItemStylePlain
target:self
action:@selector(goToMenu:)];
self.navigationItem.leftBarButtonItem = left;
self.navigationItem.title = @"My Homes";
return self;
【问题讨论】:
【参考方案1】:这很容易:)
https://developer.apple.com/documentation/uikit/uinavigationitem/1624956-rightbarbuttonitems
navigationItem.rightBarButtonItems = [rightA, rightB] // @[rightA, rightB] for ObjC
【讨论】:
其实没有上限。您可以根据需要添加任意数量,即使是有害的哈哈。但实际上它尽可能多地适合您。想想你的用户! 如果我们想禁用其中任何一个怎么办?? 最简单的方法是将单个按钮作为属性保存。然后你可以简单地在每个按钮上单独设置enabled = false
。
喜欢事情就这么简单【参考方案2】:
不要使用self.navigationItem.rightBarButtonItem
,而是使用
self.navigationItem.rightBarButtonItems //note the plural
这允许您设置一组按钮而不是单个按钮。
详情请参阅UINavigationItem class reference。
【讨论】:
【参考方案3】: let RightBarButton = UIButton()
RightBarButton.setTitleColor(UIColor.blueColor(), forState: .Normal)
RightBarButton.frame = CGRectMake(30,0,30,30)
RightBarButton.setImage(UIImage(named: "search-icon.png"), forState: .Normal)
RightBarButton.addTarget(self, action: #selector(BaseViewController.OpenQuickLink), forControlEvents: .TouchUpInside)
let RightBarButton2 = UIButton()
RightBarButton2.setTitleColor(UIColor.blueColor(), forState: .Normal)
RightBarButton2.frame = CGRectMake(0,0,30,30)
RightBarButton2.setImage(UIImage(named: "share-icon.png"), forState: .Normal)
RightBarButton2.addTarget(self, action: #selector(BaseViewController.Opensharelink), forControlEvents: .TouchUpInside)
let barButtonItem1 = UIBarButtonItem(customView: RightBarButton2)
let barButtonItem = UIBarButtonItem(customView: RightBarButton)
navigationItem.rightBarButtonItems = [barButtonItem1, barButtonItem2]
【讨论】:
以上是关于带有多个按钮的导航栏的主要内容,如果未能解决你的问题,请参考以下文章
如何在iphone的子视图页面中创建带有导航返回按钮的导航栏
带有 ionic-2-sidemenu 应用程序的顶部导航栏中的导航按钮
在带有搜索按钮的导航栏上添加 searchDisplayController.displaySearchBarInNavigationBar