Swift 仅适用于一个UI视图控件的快速横向定向

Swift 仅适用于一个UI视图控件的快速横向定向,swift,orientation,Swift,Orientation,我正在构建一个应用程序,它有8个视图控制器和一个导航控制器。其中一个视图控制器将显示照片。我的问题是,如何将所有视图控制器的方向锁定为纵向模式,但将显示照片的一个视图控制器能够旋转到横向模式。因此,7视图仅控制纵向,1视图控制纵向和横向。我搜索了这个论坛并找到了答案,但没有一个对我有用 哦,我在一般信息页面也有,我只检查了肖像。我需要检查所有4个方向才能工作吗?非常感谢是的,您应该检查所有方向,以便进行此操作。除此之外,您还需要在app delegate类中执行以下操作 func applica

我正在构建一个应用程序,它有8个视图控制器和一个导航控制器。其中一个视图控制器将显示照片。我的问题是,如何将所有视图控制器的方向锁定为纵向模式,但将显示照片的一个视图控制器能够旋转到横向模式。因此,7视图仅控制纵向,1视图控制纵向和横向。我搜索了这个论坛并找到了答案,但没有一个对我有用


哦,我在一般信息页面也有,我只检查了肖像。我需要检查所有4个方向才能工作吗?非常感谢

是的,您应该检查所有方向,以便进行此操作。除此之外,您还需要在app delegate类中执行以下操作

func application(application: UIApplication, supportedInterfaceOrientationsForWindow window: UIWindow) -> Int {

    return checkOrientation(self.window?.rootViewController?)

}

func checkOrientation(viewController:UIViewController?)-> Int{

    if(viewController == nil){

        return Int(UIInterfaceOrientationMask.Portrait.rawValue)
    }else if (viewController is AllOrienatationViewController){

       //AllOrienatationViewController is name of your view controller that should be shown in all orientations
       return Int(UIInterfaceOrientationMask.All.rawValue)

    }else{

        return checkOrientation(viewController!.presentedViewController?)
    }
}

如果您需要其他解释,请写一条评论,我稍后会回复。很抱歉,我今天要离开了

我输入的内容与您在我的应用程序代理类中输入的内容完全相同,所有内容都已检查,并且它已锁定。无论我将哪个UIViewController放入AllOrientationViewController,它仍然锁定在纵向。如果viewController是AllOrientationViewController,您是否可以检查是否通过在内部打印其他内容来满足第二个条件?那么您的视图层次结构是什么样的?您正在使用导航控制器吗?