我需要显示和隐藏未与导航控制器链接的自定义导航栏的帮助。我已在UITapGestureRecognizer
中初始化了导航栏和viewWillAppear
,并希望手势选择器显示并隐藏导航栏。我尝试了很多navigationController
函数,但由于我没有嵌入它们,所以它们似乎不起作用:
navigationController?.barHideOnTapGestureRecognizer
// OR
navigationController?.hidesBarsOnTap = true
// OR
navigationController?.setNavigationBarHidden(true, animated: true)
我见过:
navigationBar.hidden = true //OR FALSE
可以更改navBar的初始外观,但它无法像我需要的那样切换显示/隐藏。基本上它只需要模仿苹果照片应用程序。提前谢谢。
答案 0 :(得分:1)
一种方法是为自定义导航栏创建 IBAction 。在此 IBAction 中设置
navigationBar.hidden = true
或
navigationBar.hidden = false
取决于当前的隐藏状态
或者,如果您以编程方式创建元素,则可以使用目标和事件为您的UIGestureRecognizer
尝试一种方法。< / p>
首先,在元素中添加目标:
gestureRecognizer.addTarget(self, action: "pressed:", forControlEvents: .TouchUpInside)
在.addTarget
的操作参数中,设置应调用的方法名称。
然后编写改变隐藏状态的方法:
func pressed(sender: UIGestureRecognizer!) {
if navigationBar.hidden = true {
navigationBar.hidden = false}
else{
navigationBar.hidden = true}
}