一个额外的 BarButtonItem

Posted

技术标签:

【中文标题】一个额外的 BarButtonItem【英文标题】:a additional BarButtonItem 【发布时间】:2013-04-16 15:13:19 【问题描述】:

我遇到了一个小问题。我找到了这段代码:

MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem alloc]initWithMapView:self.mapView];
[self.mapToolbar setItems: [NSArray arrayWithObject:trackingButton] animated:YES];

我想在右侧添加一个额外的按钮(左侧是跟踪按钮)。 注意 它是 UIToolbar 而不是导航栏

所以我只是尝试了这个:

   MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem alloc]initWithMapView:self.mapView];
    UIBarButtonItem* rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Pins" style:UIBarButtonItemStyleBordered target:self action:@selector(rightButton:)];
    [self.mapToolbar setItems: [NSArray arrayWithObjects:trackingButton, rightButton, nil] animated:YES];

但它没有任何想法?

编辑 我更新了代码:将按钮添加到 NSArray

【问题讨论】:

您没有将 rightButton 添加到工具栏。 我对按钮的了解非常有限,在某些情况下它们让我感到困惑。如何添加? brianflove.com/2012/10/01/… 【参考方案1】:

如果您希望工具栏按钮在工具栏上“右对齐”,您需要在左侧项目和右侧项目之间的数组中添加一个灵活的空间项目。

MKUserTrackingBarButtonItem *trackingButton = [[MKUserTrackingBarButtonItem alloc]initWithMapView:self.mapView];
UIBarButtonItem *flexible = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
UIBarButtonItem* rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Pins" style:UIBarButtonItemStyleBordered target:self action:@selector(rightButton:)];
[self.mapToolbar setItems: [NSArray arrayWithObjects:trackingButton, flexible, rightButton, nil] animated:YES];

【讨论】:

【参考方案2】:

试试这个:

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Button" style:UIBarStyleDefault target:self action:@selector(doSomething:)];

【讨论】:

这不是toolbarItem。我有一个 Toolbar 而不是 navigationbar

以上是关于一个额外的 BarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章

一个额外的 BarButtonItem

额外域控制器的额外域控制器的安装

UICollectionView - 删除额外的间距

不能在额外的类中外包 UICollectionViewDatasource

如何为 OSX 菜单额外启用复制和粘贴

额外的滚动条如何删除?