【问题标题】:How to block landscape position from code, separetly for each view controller?如何分别为每个视图控制器阻止代码中的横向位置?
【发布时间】:2015-08-09 05:02:12
【问题描述】:

我知道我可以在目标菜单中选择我的应用程序的可用方向,但我想阻止每个屏幕的横向方向,除了带有 youtube 播放器的屏幕。

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

我怀疑也许有一种方法可以通过 sharedApplication() 做到这一点,但不知道该怎么做。

你知道怎么做吗?

【问题讨论】:

标签: ios swift appdelegate landscape-portrait


【解决方案1】:

将此添加到您希望设置为仅肖像的 UIViewController 类。

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

如果您没有更改目标中的任何设置,那么没有此设置的其他屏幕应该能够正确旋转。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 不适用于 UINavigationController。仅纵向屏幕以横向结束。
    猜你喜欢
    • 1970-01-01
    • 2013-02-19
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多