1

我有一个基于 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);

}
4

3 回答 3

2

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

在此处输入图像描述

在此处输入图像描述

删除所有其他方向后,您的 info.plist 将如下所示 在此处输入图像描述

我希望它对你有用。谢谢

于 2013-06-22T07:06:57.913 回答
1

iOS 6

shouldAutorotateToInterfaceOrientation:已弃用并替换为

应该自转

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

于 2013-06-22T06:27:16.250 回答
0

尝试使用这些,

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationPortrait;
}

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationPortrait;
}
于 2013-06-22T07:01:36.427 回答