【问题标题】:Need help hiding/showing custom navBar IOS Swift需要帮助隐藏/显示自定义导航栏 IOS Swift
【发布时间】:2015-12-22 02:13:05
【问题描述】:

我需要帮助来显示和隐藏未与导航控制器链接的自定义导航栏。我已经在viewWillAppear 中初始化了我的导航栏和UITapGestureRecognizer,并希望让手势选择器显示和隐藏导航栏。我尝试了许多 navigationController 函数,但由于我没有嵌入它们,它们似乎不起作用:

navigationController?.barHideOnTapGestureRecognizer
// OR
navigationController?.hidesBarsOnTap = true
// OR
navigationController?.setNavigationBarHidden(true, animated: true)

我看到了:

navigationBar.hidden = true    //OR FALSE

可以更改导航栏的初始外观,但不能像我需要的那样切换显示/隐藏。基本上它只需要模仿苹果的照片应用程序。提前致谢。

【问题讨论】:

  • 为什么不直接使用导航控制器?
  • 写到一半,我意识到我应该有另一个,但我已经有 2 个,而且它有点烦人的链接来将对象从一个控制器发送到另一个控制器。可能还有更多工作没有它,感谢您的输入!

标签: ios swift uinavigationbar uigesturerecognizer


【解决方案1】:

一种方法是为您的自定义导航栏创建一个IBAction。在这个IBAction中你设置了

navigationBar.hidden = true

navigationBar.hidden = false

取决于当前的隐藏状态

或者,如果您以编程方式创建元素,您可以尝试将 TargetEvent 用于您的UIGestureRecognizer

首先你添加一个目标到你的元素:

gestureRecognizer.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside)

.addTarget的action参数中,设置应该调用的方法名。

然后编写改变隐藏状态的方法:

func pressed(sender: UIGestureRecognizer!) {
    if navigationBar.hidden = true {
        navigationBar.hidden = false}
    else{
        navigationBar.hidden = true}
}

【讨论】:

  • 这看起来确实可行,但我已经在代码中创建了导航栏,所以我真的没有任何实体来创建插座?
  • @bme003 好的,然后你使用你的 UIGestureRecognizer 来捕捉水龙头。我编辑了答案。
  • @bme003 如果您觉得有帮助,请以某种方式标记答案
  • 抱歉这么久才回复,出国一周了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-20
相关资源
最近更新 更多