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

时间:2012-08-27 06:08:49

标签: objective-c xcode4 ios4 uinavigationcontroller uibarbuttonitem

我有一个导航栏,我已成功添加了正确的BarButton。 NavigationBar和BarButton都是以编程方式创建的。现在根据我的要求,我需要在导航栏中添加两个正确的BarButtons。谁能告诉我怎么做?我的应用针对的是ios4。

6 个答案:

答案 0 :(得分:15)

这段代码可以帮到你,

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

其中addButton和sortbyButton是2个单独的BarButton项目

答案 1 :(得分:2)

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

将此工具栏按钮指定为左侧或右侧barbuttonItem为U愿。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

如果你的应用程序是针对iOS 4及更高版本,那么你应该使用UISegmentControl并在其上有两个段。捕获值已更改操作事件并检查选择了哪个段,并相应地进行操作。

您还可以将图像设置为细分以使外观更好。

答案 4 :(得分:0)

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

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

答案 5 :(得分: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];