2015-12-22 97 views
1

我需要帮助显示和隐藏未与导航控制器链接的自定义导航栏。我已初始化我的导航栏,并且UITapGestureRecognizerviewWillAppear中,并且希望让手势选择器显示和隐藏导航栏。我曾试过无数navigationController功能,但因为我还没有嵌入一个他们似乎没有工作:需要帮助隐藏/显示自定义navBar IOS Swift

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

我已经看到:

navigationBar.hidden = true //OR FALSE 

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

+0

你为什么不只是使用导航控制器:在这里你改变隐藏状态

然后写的方法? –

+0

通过写这篇文章的一半,我意识到我应该有另一个,但我已经有2和它的恼人的链接周围发送对象从一个控制器到另一个。尽管如此,尽管还有更多的工作,感谢您的意见! – bme003

回答

1

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

navigationBar.hidden = true 

navigationBar.hidden = false 

根据当前隐藏状态

或者,如果您创建的元素编程,您可以使用尝试的方法目标事件为您的UIGestureRecognizer

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

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

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

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

这看起来好像可以工作,但我已经在代码中创建了我的导航栏,所以我没有真正的物理创建插座? – bme003

+0

@ bme003好的,然后你使用你的UIGestureRecognizer来捕捉水龙头。我编辑了答案。 –

+0

@ bme003请以某种方式标记答案,如果您觉得有帮助 –