后台:我实现了自定义UIViewController转换,其中第一个视图控制器(VC1)具有可见状态栏
override func prefersStatusBarHidden() -> Bool {
return false
}
而第二个呈现的视图控制器(VC2)有一个隐藏状态栏:
override func prefersStatusBarHidden() -> Bool {
return true
}
转换由用户控制,因为我使用手势控制器实现了拉开式转换。
目标:我希望状态栏在外观转换 AND 消失过渡期间隐藏(基本上类似于Google地图幻灯片菜单)。
问题:在ViewController VC2的整个外观转换过程中,状态栏被正确隐藏。但在整个消失过渡期间,状态栏是可见的。有关如何为iOS 9正确实现此功能的任何建议吗?
答案 0 :(得分:0)
尝试设置隐藏在viewWillAppear和viewWillDisappear函数上的状态栏。
答案 1 :(得分:0)
您可以创建一个实例var来保存状态栏隐藏状态,并从prefersStatusBarHidden()
返回此布尔值。当此值更改时,请致电setNeedsStatusBarAppearanceUpdate()
。
例如:
var statusBarHidden = true {
didSet {
if oldValue != statusBarHidden {
setNeedsStatusBarAppearanceUpdate()
}
}
}
override var prefersStatusBarHidden: Bool {
return statusBarHidden
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
statusBarHidden = false
}