如何使用点击手势(iOS8 / Swift)在 pageViewController 上显示/隐藏状态栏
Posted
技术标签:
【中文标题】如何使用点击手势(iOS8 / Swift)在 pageViewController 上显示/隐藏状态栏【英文标题】:How can I show/hide the status bar on a pageViewController using tap gesture (iOS8 / Swift) 【发布时间】:2015-01-17 21:17:39 【问题描述】:查看针对类似问题的所有解决方案,我一直在尝试让statusBar
用点击手势显示/隐藏。
我在 plist 中设置了View controller-based status bar appearance = NO
。
我在DataViewController
(页面视图控制器)和RootViewController
中尝试了以下代码:
let app = UIApplication.sharedApplication()
app.setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.Fade)
它不起作用。
这是嵌入在UITabBarController
中的,这会有所不同吗?
此外,我还能够获得以下内容以从RootViewController
中隐藏状态栏:
override func prefersStatusBarHidden() -> Bool
return true
但是DataViewController
甚至没有调用这个函数,并且只能通过这种方式永久隐藏它,而不是打开/关闭它。
有什么想法吗?
【问题讨论】:
应该可以——你确定调用setStatusBarHidden
的方法正在被调用吗?
断点被击中,是的。
【参考方案1】:
我已经在代码中尝试过,一切对我来说都很好。确保 View controller-based status bar appearance
设置为 NO。并且不需要覆盖prefersStatusBarHidden()
。
【讨论】:
我希望能够在点击手势上显示/隐藏状态栏,这不是完全隐藏吗? 抱歉,误解了您的问题。我已经尝试过我的代码,一切正常。请查看我的更新答案。 你在哪里打电话?在数据视图控制器中?还是 RootViewController?【参考方案2】:如果您使用UIPageViewController
,那么您应该在RootViewController
中使用此代码
如果你有 navigationController
它也会隐藏它
在ViewDidLoad()
self.navigationController?.hidesBarsOnTap = true
并使用此方法根据navigationBar
是否隐藏来隐藏或显示状态栏
override func prefersStatusBarHidden() -> Bool
if self.navigationController?.navigationBarHidden == true
return true
else
return false
【讨论】:
以上是关于如何使用点击手势(iOS8 / Swift)在 pageViewController 上显示/隐藏状态栏的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 如何将点击手势添加到 UIViews 数组?
swift - xcode10 - 点击事件交互BUG - (手势和button的addTarget方法)