【问题标题】:Change the right BarButtonItem of a manually added UINavigationBar?更改手动添加的 UINavigationBar 的右侧 BarButtonItem?
【发布时间】:2017-01-31 18:51:19
【问题描述】:

我有一个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];
}

这也没有效果。

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

【问题讨论】:

  • 您是否在调试器中检查(viewDidLoad)您尝试设置的按钮项存在并且确实是添加样式?
  • 是的。它加载并正确显示在应用程序中。它在 TouchUpInside 上调用连接到它的适当 IBAction

标签: ios objective-c uinavigationbar uibarbuttonitem uibarbuttonitemstyle


【解决方案1】:

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

查看documentation here

使用此代码

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

希望对您有所帮助。快乐编码! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多