【问题标题】:Status Bar Disappears on Modal Presentation状态栏在模态演示中消失
【发布时间】:2018-02-19 00:34:03
【问题描述】:

在我的 iOS 应用程序中,我使用转换以模态方式呈现视图控制器(在本例中为 AVPlayerViewController)。

在过渡开始时,状态栏会立即消失,并以一种丑陋的方式猛拉应用程序的内容,然后动画(无论是什么类型的——交叉淡入淡出,垂直覆盖)隐藏底层的视图控制器堆栈。新的模态显示的 VC 上有一个状态栏。

我不希望状态栏在模态演示动画的开始处消失。

我设置了一个空白项目并模拟了我的应用程序的相同基本结构,当呈现视图控制器时,状态栏在过渡期间保持静止。

什么会导致状态栏在模态演示动画开始时消失?

(在 iOS 11 上的 iPhone X 和 iOS 10/9 上的模拟器上测试。)

编辑:

为了执行演示,应用的根视图控制器正在监听通知并调用,大致如下:

let vc = AVPlayerViewController()
// configure the player
self.present(vc, animated: true) {
    vc.player?.play()
}

这就是奇怪消失的原因。

有趣的是,当我进入 Storyboard 并从同一个根视图控制器设置一个 Modal Segue(到一个空白视图控制器)时,触发了一个随机添加的按钮,结果过渡是平滑的。

另一个数据点是,当我 关闭 present(:animated:completion:) 中的动画时,状态栏会一直保持不动,直到模态框覆盖它。

【问题讨论】:

  • "什么会导致状态栏在模态演示动画开始时消失?" your 项目中与空白项目不同 的东西。但无论是什么,你都没有告诉我们。你没有告诉我们关于你在做什么的任何事情
  • @matt 有效。有趣的是,我经常在 SO 上看到您的 cmets 指出人们的问题中缺乏数据,现在我自己也经历过。我放了更多数据,但可能仍然不足以获得帮助。当我解决问题后,我会回答它并重新构建问题以使其有用。
  • 是的,笑话是我经常说,“直接从模板中用一个普通的项目试试这个”,你已经完成了那个测试——这太棒了。所以我们已经完成了 9/10:我们知道 you 正在做一些导致问题的事情。但是,正如我所说,你没有给我们一个关于它可能是什么的线索。 :)
  • 如果您可以在一个非常小的项目中重现该问题并将其发布,我将很高兴看到它。不能保证我能弄明白,但尝试总是很有趣。
  • @matt 感谢您的提议!在尝试为您重现问题的过程中,我发现这发生在专门以模态方式呈现 AVPlayerViewController 时,并且仅在 iOS 9 和 iOS 10 上。所以......我不确定为什么会发生这种情况,但我的解决方案现在是禁用演示文稿上的动画。

标签: ios modalviewcontroller uistatusbar


【解决方案1】:

就我而言,这是在 iOS 9 和 iOS 10 中以模态方式呈现 AVPlayerViewController 时出现的问题。该问题似乎在 iOS 11 中得到解决。

我在 iOS 11 上看到的是一个稍微不同的问题——在强制横向模式下模态显示 AVPlayerViewController,这导致状态栏在动画开始时翻转方向。

【讨论】:

    猜你喜欢
    • 2011-01-12
    • 1970-01-01
    • 2016-02-06
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多