我有一个标签栏应用程序,其中我有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旋转到景观,我也无法弄清楚如何强制它们。
任何人都知道如何做到这一点?
答案 0 :(得分:1)
关于这个从2008年到现在的约会有一个很大的讨论[1](看几页评论) - 概括看起来似乎
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight;
或
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
或
[application setStatusBarOrientation: UIInterfaceOrientationLandscapeRight animated:NO];
将允许您强制它横向显示 - 当用户以编程方式返回到您的风景视图时,您可能希望这样做。