Xcode 如何只允许单个 UIViewController 倒转?

How to allow only single UIViewController to rotate upside down with Xcode?

在我的应用程序中,所有屏幕都是纵向的。如何只允许单个 UIViewController 处于两种方向模式:纵向和倒置?当用户旋转 iPhone 时,UIViewController 也应该旋转。

如果您有任何连续调用的函数,那么您可以检查此函数内的设备方向,如-

if UIDevice.current.orientation == UIDeviceOrientation.portraitUpsideDown {
    // set your view constraints
}

if UIDevice.current.orientation == UIDeviceOrientation.portrait {
    // set your view constraints 
}

否则你应该创建一个监控函数并在函数内检查设备方向。

首先,在您的应用程序中,除了一个屏幕外,所有屏幕都是纵向的。因此,您不能将应用程序的方向设置为纵向。所以将设备方向设置为纵向和横向。

在ViewDidLoad中需要横屏的屏幕上输入以下代码

let value = UIInterfaceOrientation.landscapeLeft.rawValue
UIDevice.current.setValue(value, forKey: "orientation")

override var shouldAutorotate: Bool {
return true
}

在 viewDidLoad 中只需要纵向的所有屏幕上放置以下代码

let value = UIInterfaceOrientation.portrait.rawValue
    UIDevice.current.setValue(value, forKey: "orientation")