gpt4 book ai didi

ios - shouldAutoRotate 不能快速工作

转载 作者:搜寻专家 更新时间:2023-11-01 06:24:29 26 4
gpt4 key购买 nike

我知道如果 VC 有 navigationController 它应该包含一些类似 this 的东西.但是 swift 呢?如何使用navigationController在VC中调用shouldAutoRotate?我的 navigationController 具有标准类 UINavigationController(非自定义)。我想让我的所有 VC 的 shouldAutoRotate 都为 false,除了 single。据我所知,没有其他方法可以只使用“Portrait”并可以旋转单个 VC

最佳答案

swift 4

我发现的最有效的方法是在给定的 UIViewController 上添加这个扩展——第一个进入 View 的:

extension UINavigationController {

override open var shouldAutorotate: Bool {
get {
if let visibleVC = visibleViewController {
return visibleVC.shouldAutorotate
}
return super.shouldAutorotate
}
}

override open var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation{
get {
if let visibleVC = visibleViewController {
return visibleVC.preferredInterfaceOrientationForPresentation
}
return super.preferredInterfaceOrientationForPresentation
}
}

override open var supportedInterfaceOrientations: UIInterfaceOrientationMask{
get {
if let visibleVC = visibleViewController {
return visibleVC.supportedInterfaceOrientations
}
return super.supportedInterfaceOrientations
}
}

}

然后你需要覆盖 shouldAutorotate 函数。将此添加到您的 UIViewController 类:

override open var shouldAutorotate: Bool {
return false
}

您导航到的任何 UIViewController,您可以覆盖 shouldAutorotate 函数并将其设置为您喜欢的任何值(返回 true 或 false)。

对于任何以模态方式出现的 View ,覆盖 supportedInterfaceOrientations:

override open var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .all
}

关于ios - shouldAutoRotate 不能快速工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25552572/

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