iOS 6中的方向方法已更改。 我在纵向模式下的整个应用程序有很多视图控制器(不是标签栏视图控制器)我只是想在旋转设备时将我的一个视图控制器旋转到横向模式(它实际上显示一个webView)。以下方法正在工作xcode 4.4但是,它不在Xcode.4.5
中- (BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait ||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
interfaceOrientation == UIInterfaceOrientationLandscapeRight );
上述方法在xcode 4.5中不起作用,因为我改变了以下方法,但即使它不起作用....请提出任何建议。
- (BOOL) shouldAutorotate{
[[UIApplication sharedApplication] setStatusBarOrientation: UIInterfaceOrientationPortrait];
return self.modalViewController.shouldAutorotate;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
答案 0 :(得分:1)
您使用标签栏视图控制器吗?如果您使用它,那么即使您只想旋转一个,所有选项卡中的所有视图控制器都应该能够旋转。
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
这在iOS6中应该可以正常工作。
如果使用UINavigationViewController,则会调用其方法。还有另一种解决方案。
// App delegate.m
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
NSUInteger orientations = UIInterfaceOrientationMaskAllButUpsideDown;
if(self.window.rootViewController){
UIViewController *presentedViewController = [[(UINavigationController *)self.window.rootViewController viewControllers] lastObject];
orientations = [presentedViewController supportedInterfaceOrientations];
}
return orientations;
}
然后在视图控制器中
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}