gpt4 book ai didi

ios - StatusBar 不遵守应用程序的方向和旋转

转载 作者:搜寻专家 更新时间:2023-10-30 23:15:10 26 4
gpt4 key购买 nike

我有一个管理其中所有其他 Controller 的 Root View Controller ,所以我覆盖了 rootViewController 中的 shouldAutorotate 和 supportedInterfaceOrientations,如下所示:

public override func shouldAutorotate() -> Bool {
if let vc = view.window?.rootViewController?.presentedViewController {
if NSStringFromClass(vc.classForCoder) == "AVFullScreenViewController" {
return true
}
}
return false
}

public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if let vc = view.window?.rootViewController?.presentedViewController {
if NSStringFromClass(vc.classForCoder) == "AVFullScreenViewController" {
return UIInterfaceOrientationMask.AllButUpsideDown
}
}
return UIInterfaceOrientationMask.Portrait
}

除了使用 AVPlayerViewController 观看全屏视频时,我的应用程序只有纵向模式。

上面的代码在整个应用程序中运行良好。我所有的 Controller 及其 View 都保持纵向,当用户全屏播放视频时,它会毫无问题地旋转到横向。

我的问题是纵向模式下的状态栏没有遵守方向 mask 并旋转到横向,但状态栏然后隐藏在横向中。另一个奇怪的是,当应用程序处于横屏状态时,控制中心和通知中心现在可以像应用程序处于横屏状态一样滑动打开。

最低支持的 iOS 是 9.0。有什么建议吗?

最佳答案

我最终删除了我的 Root View Controller 中的上述代码,并将其添加到我的应用委托(delegate)中。状态栏现在保持不变。

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow?) -> UIInterfaceOrientationMask {
if let vc = window?.rootViewController?.presentedViewController {
if NSStringFromClass(vc.classForCoder) == "AVFullScreenViewController" {
return UIInterfaceOrientationMask.AllButUpsideDown
}
}
return UIInterfaceOrientationMask.Portrait
}

关于ios - StatusBar 不遵守应用程序的方向和旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36609350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com