iOS UINavigationController barHideOnTapGestureRecognizer和UIButton干扰

时间:2015-03-19 17:43:46

标签: ios iphone uinavigationcontroller uibutton uinavigationbar

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

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

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

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

2 个答案:

答案 0 :(得分:2)

请勿使用标准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) } 。幸运的是,自己动手并不难:

<ES_DOMAIN>/<INDEX_NAME>

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

答案 1 :(得分:1)

[self.navigationController setNavigationBarHidden:YES];