ios - 在 iOS 9 上呈现带有状态栏的 View Controller 时 View 向下移动

标签 ios uiviewcontroller autolayout uistoryboard uistatusbar

我有一个喜欢隐藏状态栏的 View Controller (view1)。我有一个按钮,它从屏幕底部以模态方式显示另一个 View Controller (view2)(我的 Storyboard中的“显示”segue),而 view2 更喜欢可见的状态栏。在 iOS 8 上,这是从 view1 到 view2 的平滑过渡,但在 iOS 9 上,当我按下按钮时,状态栏立即出现在 view1 中,并且 view1 的整个 View 向下移动以适应它。

这是一个丑陋的效果,我希望避免它。出于某种原因,iOS 8 比 iOS 9 更优雅地处理了这个问题。是否有解决此问题的方法?

最佳答案

在 Swift 中,您可以将 view2 上的全局变量设置为

isStatusBarHidden = false

在 view2 的 viewWillAppear 上将其更改为 true 并更新状态栏

isStatusBarHidden = true
setNeedsStatusBarAppearanceUpdate()

状态栏委托(delegate)函数看起来像

func prefersStatusBarHidden() {
    return isStatusBarHidden
}

这只适用于 Swift,不适用于 Objective-C。

关于ios - 在 iOS 9 上呈现带有状态栏的 View Controller 时 View 向下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144956/

相关文章:

iphone - 触摸事件 (touchesMoved) 不适用于 UIScrollView 内的 UIViews

ios - 当高度改变时 UINavigationController 会切断内容吗? (动图)

ios - UITableviewCell 中垂直 UICollectionView 的数据输入

c# - 如何卸载菜单 (UIViewControllers)

ios - 缺少 www 文件夹

ios - 使用自动布局计算 tableHeaderView 高度

ios - TableView 单元格中 UIButton 的自动布局不起作用

ios - 仅从日期时间/日期选择器中快速按日期过滤

ios - 子类化自定义 UIViewController(使用 xib)以添加其他行为

ios - 具有多个按钮和字体的多行 UILabel