在我的iOS应用程序中,我使用转换模式呈现视图控制器(在本例中为AVPlayerViewController)。
在转换开始时,状态栏立即消失并以丑陋的混蛋拉动应用程序的内容,然后动画(无论何种类型 - 交叉渐变,覆盖垂直)隐藏底层的视图控制器堆栈。新模态显示的VC上有一个状态栏。
我希望状态栏不会在模态演示动画的 start 处消失。
我设置了一个空白项目并嘲笑了我的应用程序的相同基本结构,当呈现视图控制器时,状态栏在转换期间保持静止。
什么会导致状态栏在模态演示动画开始时消失?
(在iPhone X上测试iOS 11,在模拟器上测试iOS 10/9。)
编辑:
要执行演示,应用程序的根视图控制器正在侦听通知并大致调用:
let vc = AVPlayerViewController()
// configure the player
self.present(vc, animated: true) {
vc.player?.play()
}
这就是产生奇怪消失的原因。
有趣的是,当我进入故事板并从同一个根视图控制器设置模态搜索(到空白视图控制器)时,触发了一个随机添加的按钮,结果转换顺利。
另一个数据点是当我关闭动画present(:animated:completion:)
时,状态栏会保持不变,直到模态覆盖它。
答案 0 :(得分:1)
就我而言,在iOS 9和iOS 10中以模态方式呈现AVPlayerViewController时,这是一个特别的问题。这个问题似乎在iOS 11中得到了解决。
我在iOS 11上看到的是一个稍微不同的问题 - 在强制横向模式下模态呈现AVPlayerViewController,这导致状态栏在动画开始时翻转方向。