7

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

4

6 回答 6

15

此代码将为您解决问题,

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

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

于 2012-08-27T06:33:13.960 回答
2

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

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

于 2012-12-18T18:28:58.353 回答
0

如果您的应用程序面向 iOS 4 及更高版本,那么您应该使用 UISegmentControl 并在其上设置两个段。捕获值更改操作事件并检查选择了哪个段并进行相应操作。

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

于 2012-08-27T06:27:04.963 回答
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];

于 2012-08-27T06:38:58.033 回答
0

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

于 2012-08-27T06:21:43.973 回答
0

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

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

于 2012-08-27T06:31:15.073 回答