ios – 状态栏在关闭模态视图后保持隐藏状态,并在几秒钟后显示

前端之家收集整理的这篇文章主要介绍了ios – 状态栏在关闭模态视图后保持隐藏状态,并在几秒钟后显示前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个非常奇怪的行为:

我有一个带导航控制器(导航栏)的应用程序,状态栏可见.
然后我提出了一个视图控制器(使用相机的条形码扫描仪)模态,我想要隐藏状态栏,所以我实现了:

  1. override func prefeRSStatusBarHidden() -> Bool {
  2. return true
  3. }

当我关闭模态呈现的视图时使用

  1. self.dismissViewControllerAnimated(true,completion: nil)

虽然rootviewcontroller实现了,但视图消失并且状态栏保持隐藏状态

  1. override func prefeRSStatusBarHidden() -> Bool {
  2. return false
  3. }

但几秒钟后状态栏会自动出现!?

我在StackOverflow上尝试了一个解决方案:

  1. UIApplication.sharedApplication().setStatusBarHidden(false,withAnimation: UIStatusBarAnimation.Fade)
  2. self.dismissViewControllerAnimated(true,completion: nil)

但这对我没有任何改变.

也许我可以在viewDidAppear的rootview中刷新?

解决方法

你可能从后台线程调用dismissViewControllerAnimated吗?

如果是这样,请尝试在GCD回调中将调用(以及任何其他对UIKit的调用,因为它不是线程安全的)包装回主队列,如下所示:

  1. dispatch_async(dispatch_get_main_queue()) {
  2. self.dismissViewControllerAnimated(true,completion: nil)
  3. }

猜你在找的iOS相关文章