1

我创建了一个只支持landscape orientation(左和右)的 iPad 应用程序。Ìt 在 上完美运行iOS 6,但在iOS 5应用程序上打开。

任何人都可以帮我解决这个问题。

4

4 回答 4

1

只需添加以下方法ViewController

- (BOOL)shouldAutorotateToInterfaceOrientation:
    (UIInterfaceOrientation)toInterfaceOrientation {
         return (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
     toInterfaceOrientation == UIInterfaceOrientationLandscapeRight);
}

shouldAutorotateToInterfaceOrientationiOS 6 中已弃用的方法,iOS 5 支持仍需要该方法。

于 2013-05-29T09:57:47.817 回答
0

如果您的应用程序使用 UINavigationController,那么您应该将其子类化并在 IB 中设置类。然后,您需要覆盖以下方法以同时支持 iOS5 和 iOS6:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation;
{
  return interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
 interfaceOrientation == UIInterfaceOrientationLandscapeRight;
}

- (NSUInteger)supportedInterfaceOrientations;
{
  return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
}

- (BOOL) shouldAutorotate;
{
  return YES;
}
于 2013-05-29T10:02:13.177 回答
0

在 ios 6 中,不推荐使用“shouldAutorotateToInterfaceOrientation”方法,因此您想在 ios 5 和 ios 6 中运行构建。

然后,请转到构建阶段部分并打开编译源。

然后,将该行粘贴到所有视图控制器中

-fno-objc-弧

之后你粘贴代码

       - (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation {
     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
 interfaceOrientation == UIInterfaceOrientationLandscapeRight);
   }

并确保在摘要页面支持界面方向仅选择左右横向。

于 2013-05-29T10:13:23.037 回答
0

在您的applicationDidFinishLaunching方法中放置此代码

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationLandscape];

无论设备如何,这都会将您的应用程序设置为横向模式。

于 2013-05-29T11:16:57.413 回答