ios 6定位方法

时间:2013-02-01 22:24:31

标签: iphone ios6

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;
}

1 个答案:

答案 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;
}