这不是一个重复的问题。尚未提供最终的工作解决方案,因此在我们接受答案或找到并提供我们自己的 100% 工作解决方案之前,请不要关闭此问题。谢谢!
==================================================== ================
使用 Xcode 4.5.1,我们有一个标签栏应用程序,其中有 5 个标签。每个选项卡都包含一个 UINavigationController,因此需要在纵向模式下查看整个 App。有一个例外:我们需要在横向模式下打开并全屏查看“图像库”类型的视图控制器。
我们可以在 iOS5 中使用特定 ViewController 中的以下代码轻松完成此操作:
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
但shouldAutorotateToInterfaceOrientation
在 iOS6 中已被弃用,不再起作用。
所以,为了让它在 iOS6 中工作,到目前为止,我们已经采取了以下步骤:
1)创建了 UITabBarController(这是我们的 rootViewController)的子类
2)将其设置supportedInterfaceOrientations
为preferredInterfaceOrientationForPresentation
(UIInterfaceOrientationMaskPortrait
但请注意,我们没有实现该shouldAutorotate
方法在其中)
3)将 PROJECT/Target 支持的方向设置为 ALL
这几乎可以完美运行:我们的“图像库”视图控制器确实响应了两种横向模式 - 正如它应该 - 但它最初仍以纵向打开 - 这很糟糕。我们需要它在横向中直接打开 - 并且永远不能在纵向中显示。现在它仍然在做这两个。
知道为什么要这样做 - 或如何解决它吗?