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

Objective c 将两个右栏按钮项添加到导航栏,objective-c,xcode4,ios4,uinavigationcontroller,uibarbuttonitem,Objective C,Xcode4,Ios4,Uinavigationcontroller,Uibarbuttonitem,我有一个导航栏,我已经成功地添加了右按钮。导航栏和BarButton都是通过编程方式创建的。现在根据我的要求,我在导航栏上加了两个右按钮。谁能告诉我怎么做?我的应用程序的目标是ios4。正如UINavigationItem的文档所描述的,它有一个属性rightbarbuttonims(以及leftbarbuttonims),您可以在其中提供一个UIBarButtons数组。它们从右(索引0)到左(索引n-1)显示。如果应用程序的目标是iOS 4及以上版本,则应使用UISegmentControl

我有一个导航栏,我已经成功地添加了右按钮。导航栏和BarButton都是通过编程方式创建的。现在根据我的要求,我在导航栏上加了两个右按钮。谁能告诉我怎么做?我的应用程序的目标是ios4。

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

如果应用程序的目标是iOS 4及以上版本,则应使用UISegmentControl并在其上有两个段。捕捉值已更改的操作事件,并检查所选的段以及相应的操作


您还可以将图像设置为分段,以使外观和感觉更好

@Matthias,如文档中所述,RightBarButtonims属性可从iOS 5及以上版本获得,iOS 4也需要支持此功能


因此,UISegmentControl是实现这一点的最佳方法。

这段代码将为您实现这一点

 NSArray *barButtonItems= [[NSArray alloc] initWithObjects:self.addButton,self.sortbyButton,nil];
self.navigationItem.rightBarButtonItems=barButtonItems;
其中addButton和sortbyButton是两个独立的按钮项

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];

我知道为时已晚,但我最近才面对它。这就是我所做的 在代码中创建UIView,并将按钮作为子视图添加到此视图中。 使用[[UIBarButtonItem alloc]initWithCustomView:buttons]创建工具栏按钮


如您所愿,将此工具栏按钮指定为左按钮或右按钮。

我已明确指定我的应用程序的目标是IOS 4。self.navigationItem.RightBarButtonims正在从IOS 5运行onwards@user1626799:IOS5于2012年3月发布
RightBarButtonims
自2011年10月起就存在(至少,如果修订文档是正确的话)@Matthais:我已经测试过了,它在IOS 4中不起作用。据我所知,它在IOS 4中不起作用。你也可以通过以下方式跟进评论BornCoder@user1626799:我的错误,最早的日期是IOS 5的预版本。@Matthais:哦,好的。你能告诉我如何在IOS 4中完成任务吗?你能举个例子吗?你能举个例子说明如何使用UISegmentControl完成任务。self.navigationItem.RightBarButtonims从IOS 5开始工作。它不适用于IOS 4。我的应用程序是针对IOS 4的。我已经通过使用工具栏而不是分段控件完成了任务。你的意思是用工具栏替换了整个导航栏。它是?或者您将工具栏添加到UINavigationBar?我将工具栏添加到导航栏