从导航项中删除右栏按钮项

Abh*_*nav 24 iphone cocoa-touch objective-c uibarbuttonitem

我在导航项中添加了一个右栏按钮项,并希望在某些条件下删除它.这就是我在做的事情:

self.navigationItem.rightBarButtonItem = nil;
Run Code Online (Sandbox Code Playgroud)

但没有得到理想的行为.

我想隐藏它,但没有找到任何方法.

Eri*_*k B 18

你正在做什么应该工作.我做了很多次.您确定要从正确的导航项中删除按钮吗?self目前是否显示UIViewController


Jir*_*era 8

我知道三种方式:(在右侧)

  1. 如果您有多个条形按钮:
    self.navigationItem.rightBarButtonItems = nil

  2. 否则,如果你只有一个酒吧按钮
    self.navigationItem.rightBarButtonItem = nil

  3. 设置一个零按钮:
    self.navigationItem.setRightBarButtonItem(nil, animated: false)


bud*_*ino 7

Swift 5/4/3-导航栏的左侧和右侧都有几个按钮,因此我使用以下方法将其隐藏:

func hideNavItems() {
  navigationItem.setLeftBarButtonItems(nil, animated: true)
  navigationItem.setRightBarButtonItems(nil, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

就我而言,实际上我需要稍后再显示这些按钮,以便将它们保留在数组中:

var leftNavItems: [UIBarButtonItem]!
var rightNavItems: [UIBarButtonItem]!
Run Code Online (Sandbox Code Playgroud)

然后我只调用一个函数来显示(重新添加)它们:

func showNavItems() {
  navigationItem.setLeftBarButtonItems(leftNavItems, animated: true)
  navigationItem.setRightBarButtonItems(rightNavItems, animated: true)
}
Run Code Online (Sandbox Code Playgroud)