如何从代码中分别为每个视图控制器阻止横向位置?

How to block landscape position from code, separetly for each view controller?

我知道我可以在目标菜单中 select 我的应用程序的可用方向,但我想阻止每个屏幕的横向方向,YouTube 播放器除外。

我想这不能通过应用程序委托来完成,因为它不区分控制器并将规则应用于整个应用程序。

我怀疑也许有一种方法可以通过 sharedApplication() 来做到这一点,但不知道如何去做。

你知道这样的事情是怎么做到的吗?

在每个 VC 中使用此 override func 要阻止 .LandscapeLeft.LandscapeRight

override func supportedInterfaceOrientations() -> Int {
    return Int(UIInterfaceOrientationMask.Portrait.rawValue) | Int(UIInterfaceOrientationMask.PortraitUpsideDown.rawValue)
}

将此添加到您希望设置为仅纵向的 UIViewController class。

override func supportedInterfaceOrientations() -> Int {
  return Int(UIInterfaceOrientationMask.Portrait.rawValue)
}

只要您没有更改目标中的任何设置,其他没有更改的屏幕应该能够正确旋转。