需要帮助 hiding/showing 自定义导航栏 IOS Swift

Need help hiding/showing custom navBar IOS Swift

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

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

我看到了:

navigationBar.hidden = true    //OR FALSE

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

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

navigationBar.hidden = true

navigationBar.hidden = false

取决于当前隐藏状态

或者如果您以编程方式创建元素,您可以尝试使用 TargetEvent[=38] 的方法=] 为您 UIGestureRecognizer.

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

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

.addTarget 的操作参数中,您设置应调用的方法名称。

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

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