在swift中将一个特定的视图控制器设置为横向模式

时间:2015-12-31 09:08:55

标签: ios swift landscape

我们如何使用xib在swift中将一个特定的viewcontroller设置为横向模式?

func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
        let orientation: UIInterfaceOrientationMask =
        [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.PortraitUpsideDown]
        return orientation
}

我正在使用上面的代码,但它似乎无法正常工作..

2 个答案:

答案 0 :(得分:0)

我很确定您不能通过使用故事板来为每个视图控制器提供特定功能。如果您按原样在代码中执行此操作,则需要为该函数指定override关键字。您还需要确保您的应用程序项目支持您希望为任何特定视图控制器支持的所有界面方向。

答案 1 :(得分:0)

您需要检查proyect目标中的设备方向 devide orientation

然后在所有viewControllers中进行纵向添加

override func shouldAutorotate() -> Bool {
    if (UIDevice.currentDevice().orientation == UIDeviceOrientation.Portrait ||
        UIDevice.currentDevice().orientation == UIDeviceOrientation.PortraitUpsideDown ||
        UIDevice.currentDevice().orientation == UIDeviceOrientation.Unknown) {
            return true;
    } else {
        return false;
    }
}

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

最后在横向viweController中你要添加

override func shouldAutorotate() -> Bool {
    return true
}

override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
    return [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.Landscape, UIInterfaceOrientationMask.LandscapeLeft, UIInterfaceOrientationMask.LandscapeRight, UIInterfaceOrientationMask.PortraitUpsideDown]
}