在 iOS 9 上显示带有状态栏的视图控制器时,视图向下移动
View shifts down when presenting view controller with status bar on iOS 9
我有一个更喜欢隐藏状态栏的视图控制器 (view1)。我有一个按钮,它从屏幕底部以模态方式显示另一个视图控制器 (view2)(我的情节提要中的 'Show' segue),而 view2 更喜欢可见的状态栏。在 iOS 8 上,这是从 view1 到 view2 的平滑过渡,但在 iOS 9 上,当我按下按钮时,状态栏立即出现在 view1 中,并且 view1 的整个视图向下移动以适应它。
这是一个丑陋的效果,我希望避免它。出于某种原因,iOS 8 比 iOS 9 更优雅地处理这个问题。有没有解决这个问题的方法?
在 Swift 中,您可以将视图 2 上的全局变量设置为
isStatusBarHidden = false
在 view2 的 viewWillAppear 上将其更改为 true 并更新状态栏
isStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()
状态栏委托函数看起来像
func prefersStatusBarHidden() {
return isStatusBarHidden
}
这仅适用于 Swift,不适用于 Objective-C。
我有一个更喜欢隐藏状态栏的视图控制器 (view1)。我有一个按钮,它从屏幕底部以模态方式显示另一个视图控制器 (view2)(我的情节提要中的 'Show' segue),而 view2 更喜欢可见的状态栏。在 iOS 8 上,这是从 view1 到 view2 的平滑过渡,但在 iOS 9 上,当我按下按钮时,状态栏立即出现在 view1 中,并且 view1 的整个视图向下移动以适应它。
这是一个丑陋的效果,我希望避免它。出于某种原因,iOS 8 比 iOS 9 更优雅地处理这个问题。有没有解决这个问题的方法?
在 Swift 中,您可以将视图 2 上的全局变量设置为
isStatusBarHidden = false
在 view2 的 viewWillAppear 上将其更改为 true 并更新状态栏
isStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()
状态栏委托函数看起来像
func prefersStatusBarHidden() {
return isStatusBarHidden
}
这仅适用于 Swift,不适用于 Objective-C。