将两个右侧按钮项添加到导航栏

7

我有一个导航栏,成功地向其中添加了右侧BarButton。NavigationBar和BarButton都是通过编程创建的。现在根据我的需求,我需要在导航栏上添加两个右侧BarButton。请问有谁知道该怎么做?我的应用程序针对ios4。

6个回答

15

这段代码可以解决你的问题,

 NSArray *barButtonItems= [[NSArray alloc] initWithObjects:self.addButton,self.sortbyButton,nil];
self.navigationItem.rightBarButtonItems=barButtonItems;

addButton和sortbyButton是两个单独的BarButton项


self.navigationItem.rightBarButtonItems 从IOS 5开始工作。它不适用于IOS 4。我的应用程序针对IOS 4。 - Raj

2

虽然我知道有点晚了,但最近我也遇到了这个问题。以下是我所做的操作:

在代码中创建一个 UIView,并将按钮作为其子视图添加进去。

使用 [[UIBarButtonItem alloc] initWithCustomView:buttons] 创建一个 ToolbarButton。

根据需要将该工具栏按钮指定为左侧或右侧 barbuttonItem。


0
NSArray *segmentTextContent = [NSArray arrayWithObjects:
                               NSLocalizedString(@\"Group By\", @\"\"),
                               NSLocalizedString(@\"Filter By\", @\"\"),
                               nil];
UISegmentedcontrol *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.frame = CGRectMake(0, 0, 125, 30);
[segmentedControl addTarget:self action:@selector(toggleUnit) forControlEvents:UIControlEventValueChanged];

segmentedControl.tintColor = [UIColor lightGrayColor];
defaultTintColor = [segmentedControl.tintColor retain];

self.navigationItem.rightBarButtonItem = segmentedControl;
[segmentedControl release];


我通过使用工具栏而不是分段控件完成了我的任务。 - Raj
你的意思是说你用工具栏替换了整个导航栏?还是你将工具栏添加到了UINavigationBar中? - BornCoder
我将工具栏添加到了导航栏。 - Raj

0
UINavigationItem1的文档所述,它有一个属性rightBarButtonItems(以及leftBarButtonItems),您可以在其中提供一个UIBarButtons数组。它们从右侧(索引0)到左侧(索引n-1)显示。

我已经明确指定我的应用程序针对IOS 4。self.navigationItem.rightBarButtonItems仅适用于IOS 5及以上版本。 - Raj
@user1626799:IOS5于2012年3月推出。 rightBarButtonItems自2011年10月起存在(至少,如果修订文档是正确的)。 - Matthias
@Matthias:我已经测试过了,在IOS 4中它不起作用。据我所知,在IOS 4中它也不起作用。您还可以跟进BornCoder下面的评论。 - Raj
@user1626799:我的错误,早期日期是IOS 5的预版本。 - Matthias
@Matthais:好的。你能告诉我如何在IOS 4中完成我的任务吗? - Raj

0
如果你的应用程序面向iOS 4及以上版本,则应使用UISegmentControl并在其上拥有两个段。捕获值更改操作事件,检查选定的是哪个段,并相应地执行操作。
您还可以设置图像到片段,以使外观和感觉更好。

请给一个例子。 - Raj

0
@Matthias,如文档所述,rightBarButtonItems属性仅适用于iOS 5及以上版本,并且此功能还需要在iOS 4上支持。

因此,UISegmentControl是实现此目的的最佳方式。


请问您能否给我一个使用UISegmentControl实现我的任务的例子? - Raj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接