我有一个以纵向模式呈现的 UITabBarController。在其中一个选项卡上,我有一个以模态方式显示 UIViewController 的按钮(一个简单的故事板 segue 执行操作)。
我希望这个模态视图以横向模式显示,但我不能让它自动转动。
我在模态视图控制器中有这个
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
我已将 LandscapeLeft 添加到 .plist 支持的方向(尽管这也允许 TabBar 旋转,而我不想要)
我还将它添加到模态视图的 ViewDidLoad
[UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeLeft;
但我就是不能让它自己旋转。
谢谢
编辑 - -
似乎 shouldAutoRotate 甚至没有被调用!
另外,我正在尝试检测方向,下面的代码始终显示 2,无论方向如何!
if ([[UIDevice currentDevice] orientation] == UIInterfaceOrientationPortrait) {
NSLog(@"1");
self.hostView.frame = CGRectMake(0, 60, 200, 255);
} else {
NSLog(@"2");
self.hostView.frame = CGRectMake(0, 45, 480, 255);
}
编辑 2 ---
我的错。我想我应该提到我使用的是 iOS 6。显示器在 iOS 5 上自动旋转。不推荐使用 shouldAutorotateToInterfaceOrientation,所以我需要阅读新方法。