我有一个应用程序,其中5.0作为部署目标,6.1作为基本sdk,它在iOS 6.x设备/模拟器上运行良好。但是在5.x上,我的观点并没有转动。我已经google了一下,发现了一些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]];
我已经尝试在我的SearchVC_iPhone视图控制器中实现shouldAutorotateToInterfaceOrientation
,我已经尝试了子类化UINavigationController
并在该子类中实现shouldAutorotateToInterfaceOrientation
但是它对我不起作用我真的只是在这里猜测。
任何知道这些东西的人都可以帮助我,我还需要做些什么才能让它在iOS 5.x中运行?
谢谢你 索伦
答案 0 :(得分:2)
在IOS5中,您可以使用
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
在IOS6中,您可以使用
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
答案 1 :(得分:1)
我解决了!!问题是rootViewController,我必须在rootViewController上实现shouldAutorotateToInterfaceOrientation,然后所有子视图开始按原样运行。所以我创建了自己的UITabBarController子类,它实现了shouldAutorotateToInterfaceOrientation并将其设置为rootViewController。
答案 2 :(得分:0)
我正在开发一个应用程序(Xcode 4.5 iOS 6),它必须兼容已安装软件版本的设备,从4.5开始,默认为iPhone 5.
我知道新的iOS 6更改带有自动旋转模式。
当您打开设备时,“iPhone模拟器6.0”应用程序运行正常,但是当我以旋转方式运行“iPhone模拟器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
(无效)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation 持续时间:(NSTimeInterval)持续时间
{
if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
{
//Code here
}
if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
{
//Code here
}
}