我有一个非常奇怪的行为:
我有一个带导航控制器(导航栏)的应用程序,状态栏可见.
然后我提出了一个视图控制器(使用相机的条形码扫描仪)模态,我想要隐藏状态栏,所以我实现了:
override func prefersStatusBarHidden() -> Bool { return true }
当我关闭模态呈现的视图时使用
self.dismissViewControllerAnimated(true,completion: nil)
虽然rootviewcontroller实现了,但视图消失并且状态栏保持隐藏状态
override func prefersStatusBarHidden() -> Bool { return false }
但几秒钟后状态栏会自动出现!?
我在StackOverflow上尝试了一个解决方案:
UIApplication.sharedApplication().setStatusBarHidden(false,withAnimation: UIStatusBarAnimation.Fade) self.dismissViewControllerAnimated(true,completion: nil)
但这对我没有任何改变.
也许我可以在viewDidAppear的rootview中刷新?
解决方法
你可能从后台线程调用dismissViewControllerAnimated吗?
如果是这样,请尝试在GCD回调中将调用(以及任何其他对UIKit的调用,因为它不是线程安全的)包装回主队列,如下所示:
dispatch_async(dispatch_get_main_queue()) { self.dismissViewControllerAnimated(true,completion: nil) }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。