ios6设备不支持方向

Posted

技术标签:

【中文标题】ios6设备不支持方向【英文标题】:orientation not supporting in ios6 devices 【发布时间】:2013-06-22 06:24:30 【问题描述】:

我有一个基于 xcode 4.2 构建的应用程序,它仅支持纵向,它适用于除 ios6 之外的所有设备。在 iOS 6 设备中,它显示两个方向..我只需要纵向..我正在使用导航控制器 .. 在 appdelegate::

- (BOOL)shouldAutorotate


      return ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait);



- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

     return (UIInterfaceOrientationMaskPortrait);

在其他viewControllers ::

- (BOOL)shouldAutorotate 
    return YES;


- (void)viewDidLayoutSubviews

    DisplayFunctionName;
    NSLog(@"orientation: %d",self.interfaceOrientation);


- (NSUInteger)supportedInterfaceOrientations

    if (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad)
    
        return (UIInterfaceOrientationMaskAll);
    
    else
    
        return (UIInterfaceOrientationMaskPortrait);
    

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

    DisplayFunctionName;
    NSLog(@"orientation: %d",interfaceOrientation);
      return (interfaceOrientation==UIInterfaceOrientationPortrait);


【问题讨论】:

在其他viewControllers中,在shouldAutoRotate方法中,尝试用return ([[UIDevice currentDevice] orientation]==UIInterfaceOrientationPortrait);替换return YES; 如果您的应用程序中只需要纵向方向,最好在您的应用程序 plist 配置中禁用所有其他方向。 问题解决了吗? 【参考方案1】:

在 IOS6 中,当您希望某些视图为纵向而某些视图需要横向时,很难处理方向,但如果您只希望整个应用程序支持一个方向,则非常容易。只需转到支持文件,然后在您的应用中打开 info.plist 并删除除您想要的方向之外的所有其他方向。以下是一些屏幕截图,可帮助您解决问题

删除所有其他方向后,您的 info.plist 将如下所示

我希望它对你有用。谢谢

【讨论】:

【参考方案2】:

iOS 6

shouldAutorotateToInterfaceOrientation: 已弃用并替换为

应该自动旋转

检查这个:https://***.com/a/14938444/305135

【讨论】:

【参考方案3】:

尝试使用这些,

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

    return UIInterfaceOrientationPortrait;


- (NSUInteger)supportedInterfaceOrientations

    return UIInterfaceOrientationPortrait;


- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

    return UIInterfaceOrientationPortrait;

【讨论】:

以上是关于ios6设备不支持方向的主要内容,如果未能解决你的问题,请参考以下文章

UIViewController 在 iOS 6 中能否支持比其父级更多的界面方向?

在 ios6 下横向启动应用程序同时支持所有方向

IOS 6 方向 - 只有一个 Viewcontroller 支持横向和纵向方向 - 否则只支持纵向

如何支持IOS6和IOS7应用图标并在同一个应用中启动图像?

xcode安装

preferredInterfaceOrientationForPresentation 必须返回受支持的界面方向 (iOS 6)