0

我有一个UINavigationBar手动拖动并添加到情节提要中的 ViewController 的内容。在该 NavigationBar 中,我已拖动并添加了一个样式为默认“添加”图像的“UIBarButtonItem”。

视图是模态推送的,因此它没有自动推送的 NavigationBar。

navBar 和 BarButton 都像这样连接到我的视图控制器和情节提要

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar;
@property (strong, nonatomic) IBOutlet UIBarButtonItem *addRemoveButton;

我尝试将按钮图像更改为另一个默认值,即垃圾桶图标,viewDidLoad就像这样

if (alreadyAdded)
{
    [self.navigationItem.rightBarButtonItem setStyle:UIBarButtonSystemItemTrash];
}

这没有效果。

我也试过这个:

if (alreadyAdded)
{
    _addRemoveButton = nil;
}

这也没有效果

还有这个:

if (alreadyAdded)
{
    _addRemoveButton = [[UIBarButtonItem alloc]initWithImage:nil style:UIBarButtonSystemItemTrash target:nil action:nil];
}

这也没有效果。

如何将此按钮设置为垃圾桶图标?

4

1 回答 1

1

UIBarButtonSystemItemTrash无法通过style属性检索。style 是 UIBarButtonItemStyle 类型,可以是UIBarButtonItemStylePlainUIBarButtonItemStyleBordered

在此处查看文档

使用此代码

@property (strong, nonatomic) IBOutlet UINavigationBar *RibbonDetailNavBar;
// No need to create rightBarButtonItem IBOutlet.
if (alreadyAdded)
{
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemTrash target: nil action: nil];
}
else {
    self.RibbonDetailNavBar.topItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAdd target: nil action: nil];
}

希望它可以帮助你。快乐编码!:)

于 2017-01-31T19:28:23.417 回答