祝美国的人们阵亡将士纪念日快乐!
我是 iOS 和 Objective-C 编程的新手;几周前,我继承了一个为 iOS 5 设计的正在开发的 iPad 应用程序。现在,除了 iOS 6 中的旋转之外,我一切正常。我知道 iPad 应用程序应该旋转到默认的每个方向(这就是我想要),但我的没有。一切都在 iOS 5 中完美旋转,我可以让我的启动屏幕在 iOS 6 中完美旋转,但仅此而已。我无法让活动(一旦您单击启动屏幕)正确旋转。
我已经搜索了 stackoverflow 和其他网站来弄清楚我必须做什么,所以我知道在任何特定的 ViewController 中实现-(BOOL)shouldAutorotate
并-(NSUInteger)supportedInterfaceOrientations
控制该视图的方向行为。我读过在一个 VC 中具有不同的轮换行为会影响整个应用程序。所以我确保我能找到的每个 VC** 现在都将实现这两个 iOS 6 方法来分别返回YES
和UIInterfaceOrientationMaskAll
。那没有用。我读到了关于返回self.tabBarController.shouldAutorotate
和self.tabBarController.supportedInterfaceOrientations
在这些方法中确保标签栏旋转行为是一致的,但这不起作用。我已经阅读了有关实现实现这两种方法的类别(UITabBarController+autoRotate.m 和 .h)的信息,但这不起作用。我已经阅读了关于子类化 tabBarController 的文章,我认为我的代码是这样做的:在我的 appDelegate 中,我调用
[myWindow setRootViewController:activityViewController]
,
其中activityViewController是BicycleFamilyAcitivityViewController类的一个实例,它来自
@interface BicycleFamilyActivityViewController : UIViewController <UITabBarControllerDelegate>
当我使用 iOS 6 模拟器调查成功启动屏幕旋转期间调用的内容时,我注意到 BicycleFamilyAcitivityViewController 中实现的这两个方法被调用(实际上每个调用两次),而且-(void)willAnimateRotationToInterfaceOrientation:duration
也是如此。当我在查看活动时尝试旋转时(单击启动屏幕后),这两个方法只调用一次,-(void)willAnimateRotationToInterfaceOrientation:duration
不会被调用。在这两种情况下,都会调用 appDelegate 的-(NSUInteger)application:supportedInterfaceOrientationsForWindow
方法。
关于如何让轮换在整个应用程序中工作的任何建议?即使它只是指向我尚未看到(或完全理解)的 StackOverflow 上的答案,我也将不胜感激。
提前谢谢了!
伯尼
** 在寻找项目中的 VC 类时,我确保考虑任何实现 iOS 5 的旋转方法的类:-(BOOL)shouldAutorotateToInterfaceOrientation:interfaceOrientation