Tabbar Nav应用程序,允许一个视图旋转而其他视图不旋转

时间:2010-07-02 13:27:36

标签: iphone uitabbar autorotate multiple-views

我有一个标签栏应用程序,其中我有3个不同的视图,每个视图都有自己的视图控制器。

在标签条形码中我有这个,来处理旋转。

#import "RotatingTabBarController.h"

@implementation RotatingTabBarController

    // Override to allow orientations other than the default portrait orientation.
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

      return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation]; 
 }
@end

然后在我想根据设备方向旋转的第二个视图控制器中我有:

// Override to allow orientations other than the default portrait orientation.
 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

   return YES;
 }

对于我不想旋转的其他两个视图,我设置了这个方法。

// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
 // Return YES for supported orientations
 return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

问题:所以这在视图1和视图3中工作正常,当你旋转设备时,它们保持在所需的纵向模式。当在视图2中我旋转到横向时,视图按预期进行并旋转到横向。但是当在视图2中处于景观模式时单击视图1或视图3选项卡时,视图1和视图3处于横向模式。

即使视图2旋转到景观,我也无法弄清楚如何强制它们。

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:1)

关于这个从2008年到现在的约会有一个很大的讨论[1](看几页评论) - 概括看起来似乎

application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];

[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];

将允许您强制它横向显示 - 当用户以编程方式返回到您的风景视图时,您可能希望这样做。

[1] iPhone app in landscape mode, 2008 systems