“支持界面定位”是否有先例?

问题描述:

我正在开发一个应用程序,我想要一个屏幕自动旋转到横向。“支持界面定位”是否有先例?

这将是应用程序中唯一的旋转屏幕。

我试图找到这样做的最简单的方法。

如果我在构建摘要页面(即使用切换按钮)中设置支持的方向,以便它只是纵向。那么我可以在代码中覆盖我想要自动旋转的屏幕吗?

或者我必须这样做吗?即支持所有的方向,然后禁用所有我不想旋转的屏幕?

感谢

还是我必须要全面做它的其他方式?即支持所有的方向,然后禁用所有我不想旋转的屏幕?

是。您必须列出Info.plist 全部您将支持的方向。然后用supportedInterfaceOrientations限制特定的视图控制器方向。必须呈现您的一个景观视图控制器,即使用“模态”轮播或致电presentViewController:animated:

这里我的回答可能是有用的:

https://*.com/a/13755923/341994

和我的答案在这里:

https://*.com/a/15301322/341994

+0

如果只有一个视图控制器,它们是否相同? – 2016-03-10 18:36:24

添加观察员要旋转这样的观点的viewDidLoad方法:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; 
[[NSNotificationCenter defaultCenter] 
addObserver:self selector:@selector(orientationChanged:) 
name:UIDeviceOrientationDidChangeNotification 
object:[UIDevice currentDevice]]; 

然后设置根据要更改内部的orientationChanged方法这样的视图的视图:

- (void) orientationChanged:(NSNotification *)note{ 
UIDevice * device = [UIDevice currentDevice]; 
switch(device.orientation) 
{ 
    case UIDeviceOrientationPortrait: 

     break; 
    case UIDeviceOrientationPortraitUpsideDown: 

     break; 
    case UIDeviceOrientationLandscapeLeft: 

     break; 
    case UIDeviceOrientationLandscapeRight: 

     break; 

    default: 
     break; 
    }; 
} 

在iOS 6中,应用程序支持的取向(在Info.plist说明)作逻辑与运算的顶视图控制器支持的方向,所以为了完成你想要的任务,你需要在Info.plist中声明对每个方向的支持,然后在你不想旋转的视图控制器中覆盖supportedOrientations:方法,例如:

- (NSUInteger)supportedInterfaceOrientations 
{ 
    return UIInterfaceOrientationMaskPortrait; 
}