1

我有一个应用程序,它以 5.0 作为部署目标,6.1 作为基本 sdk,它在 iOS 6.x 设备/模拟器上运行良好。但是在 5.x 上,我的观点没有旋转。我在谷歌上搜索并找到了一些关于此的 Stackoverflow 帖子,但我无法在其中找到正面和反面。我想我需要实现我自己使用的不同视图控制器的子类,但是我是对的吗?

在我的应用程序委托didFinishLaunchingWithOptions中,我使用它来创建我的应用程序:

self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = @[viewController1, viewController2, viewController3];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];

我创建了我的 viewController1.. 像这样:

viewController1 = [[UINavigationController alloc] initWithRootViewController:[[SearchVC alloc] initWithNibName:@"SearchVC_iPhone" bundle:nil]];

我已经尝试shouldAutorotateToInterfaceOrientation在我的 SearchVC_iPhone 视图控制器中实现,并且我也尝试在该子类中进行子类化UINavigationController和实现shouldAutorotateToInterfaceOrientation,但它对我来说不起作用,我真的只是在这里猜测。

请知道这些东西的任何人都可以在这里帮助我,我需要做些什么才能让它在 iOS 5.x 中也能正常工作?


谢谢索伦_

4

3 回答 3

2

在 IOS5 中,您可以使用

-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    return YES;
}

在 IOS6 中,您可以使用

-(NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskAll;
}
于 2013-03-04T09:50:55.430 回答
1

我解决了!!问题是 rootViewController,我必须在 rootViewController 上实现 shouldAutorotateToInterfaceOrientation ,然后所有子视图都开始正常运行。所以我创建了自己的 UITabBarController 子类,它实现了 shouldAutorotateToInterfaceOrientation 并将其设置为 rootViewController。

于 2013-03-04T10:18:33.210 回答
0

我正在开发一个应用程序(Xcode 4.5 iOS 6),它必须与已安装软件版本的设备兼容,从 4.5 和默认 iPhone 5 开始。

我知道新的 iOS 6 更改带有自动旋转模式。

当您打开设备时,“iPhone Simulator 6.0”应用程序运行正常,但是当我运行“iPhone Simulator 5.0”时出现旋转问题。

我输入了代码,以及从 iOS 6 和旧方法(已弃用)到 iOS 5 的新方法。

所以寻找旋转方法:

#pragma mark - Rotate Methods iOS 5




- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation

{

if (UIInterfaceOrientationIsPortrait(interfaceOrientation))

{

    //Code Here

}


if (UIInterfaceOrientationIsLandscape(interfaceOrientation))

{

    //Code Here

}

return YES;

}

#pragma mark - Rotate Methods iOS 6
  • (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)duration

    {

if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation))

    {

        //Code here

    }

if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation))

    {

         //Code here

    }

}

于 2013-03-04T10:07:22.837 回答