需要帮助隐藏/显示自定义navBar IOS Swift

时间:2015-12-22 02:13:06

标签: ios swift uinavigationbar uigesturerecognizer

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

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

我见过:

navigationBar.hidden = true    //OR FALSE

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

1 个答案:

答案 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}
}