Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS UINavigationController BarHideOnTapGestureRecognitor和UIButton干扰_Ios_Iphone_Uinavigationcontroller_Uibutton_Uinavigationbar - Fatal编程技术网

iOS UINavigationController BarHideOnTapGestureRecognitor和UIButton干扰

iOS UINavigationController BarHideOnTapGestureRecognitor和UIButton干扰,ios,iphone,uinavigationcontroller,uibutton,uinavigationbar,Ios,Iphone,Uinavigationcontroller,Uibutton,Uinavigationbar,我开发了一个应用程序,它利用iOS8的功能在点击视图时显示或隐藏导航栏 但是,主视图包含一个UIButton,该按钮也会作用于点击。问题是两个“对象”都接收到点击,如果我点击按钮,导航栏将切换其可见性 我可以通过导航控制器访问BarhideontapgestureRecognitor,但不确定如果点击按钮,如何使用它来停止响应 当按下按钮时,是否有办法(除了关闭或更改为“滑动隐藏”)抑制导航栏的出现/消失?不要使用标准的BarHideOnTapGestureRecognitor。幸运的是,自己动

我开发了一个应用程序,它利用iOS8的功能在点击视图时显示或隐藏导航栏

但是,主视图包含一个UIButton,该按钮也会作用于点击。问题是两个“对象”都接收到点击,如果我点击按钮,导航栏将切换其可见性

我可以通过导航控制器访问BarhideontapgestureRecognitor,但不确定如果点击按钮,如何使用它来停止响应


当按下按钮时,是否有办法(除了关闭或更改为“滑动隐藏”)抑制导航栏的出现/消失?

不要使用标准的
BarHideOnTapGestureRecognitor
。幸运的是,自己动手并不难:

[self.navigationController setNavigationBarHidden:YES];
override func viewDidLoad() {
    super.viewDidLoad()

    // Do any additional setup after loading the view.
    let gestureRecognizer = UITapGestureRecognizer(target: self, action: "toggleBarsOnTap:")
    self.view.addGestureRecognizer(gestureRecognizer)
}

func toggleBarsOnTap(sender: AnyObject?) {
    let hidden = !self.navigationBarHidden
    self.setNavigationBarHidden(hidden, animated: true)
    self.setToolbarHidden(hidden, animated: true)
}

点击视图将显示/隐藏条形图,点击控件(视图的子视图)将不会显示/隐藏条形图。

您是否尝试使用[self.navigationController setNavigationBarHidden:YES]进行解决?嗯……谢谢……这确实有帮助。我必须将它添加到视图中的每个操作处理程序中,这有点乏味。我想知道是否有一种“全球”的方式告诉它不要对点击按钮做出反应。不幸的是,我不知道有什么。我总是在需要的时候打出来,但我会考虑,如果我弄明白了,我会写在这里。顺便说一句,我补充了我的答案:)谢谢。这有帮助