为一个视图控制器启用纵向和横向,为swift中的其他视图控制器启用纵向?

时间:2015-10-30 20:29:26

标签: ios swift landscape-portrait

我的应用程序中有10个视图控制器,我只想在纵向和横向模式下查看一个视图控制器,其余只能在纵向模式下查看。 注意:我正在使用UINavigationController。 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但找到了解决方案:

首先,在基本设置中为您的应用程序启用横向模式。然后修改你的AppDelegate:

nonErroniousBidsMap.map(rec => s"${rec.head},${rec(1)},US,${rec(5)}")

对于每个允许横向模式的Controller,将以下代码添加到viewDidLoad():

internal var shouldRotate = false

func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {

    return shouldRotate ? .allButUpsideDown : .portrait

}

这允许整个应用程序以横向模式显示。但它应该只在这个控制器中,所以在viewWillDissappear()中添加以下代码,将AppDelegate中的shouldRotate var设置为false:

let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.shouldRotate = true