【问题标题】:Hide bar button items swift快速隐藏栏按钮项目
【发布时间】:2016-10-07 02:45:39
【问题描述】:

如何隐藏我的左栏按钮项?

在我的故事板中,我将一个导航栏拖到我的视图控制器上,然后是一个栏按钮项。在某些情况下,我想隐藏 Bar Button Item。

这些都不起作用:

override func viewDidLoad() {
    self.navigationItem.leftBarButtonItem = nil
    self.navigationItem.leftBarButtonItems = []
    self.navigationItem.setLeftBarButtonItems([], animated: true)
}

【问题讨论】:

  • 都应该可以,如果不行,试试self.navigationController.navigationItem
  • 这可能不相关,但您必须在 viewDidLoad 实现中调用 super
  • matt 为什么必须调用 super.viewDidLoad

标签: ios swift swift2 uinavigationbar uinavigationitem


【解决方案1】:

我将导航栏拖到我的视图控制器上

好吧,不要!设置navigationItem 的导航控制器界面与界面中的松散-goosey 导航栏之间存在很大差异,这就是您所拥有的。

将您的视图控制器嵌入 UINavigationController 并以正确的方式做事。然后设置您的navigationItem 及其属性将按预期工作。

【讨论】:

  • 嗯好的,那么在什么情况下应该嵌入导航视图控制器,什么时候应该拖过去?
  • 之前的视图控制器已经嵌入到导航控制器中。这是否意味着我需要将每个视图控制器嵌入到导航控制器中才能将条形按钮添加到情节提要?因为如果我不将导航栏拖到 VC 上,我无法将条形按钮项目添加到情节提要。这就是我一开始就陷入这种混乱的原因。
  • @toast 如果之前的 v.c.已经嵌入到导航控制器中,并且你有一个从它到这个的 push segue,那么这个顶部应该会自动有一个导航栏!如果没有,那么只需添加一个导航项(不是导航栏),现在您可以将栏按钮放入其中。
【解决方案2】:

您无法访问 self.navigationItem.leftBarButtonItem,因为您从情节提要手动拖动 navigationBar。我建议改为执行以下操作:

  1. 添加您在情节提要中创建的 BarButtonItem 的 IBOutlet(例如:barButton)
  2. barButton.title = ""
  3. barButton.isEnable = false

这将隐藏您的 BarButtonItem,您可以稍后将其显示回来。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 2015-07-15
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 2015-03-24
    • 1970-01-01
    相关资源
    最近更新 更多