UITabBar自动旋转问题

时间:2012-01-25 18:32:14

标签: ios ipad uiviewcontroller uitabbarcontroller autorotate

我想知道为什么基于UITabBarController的iPad项目在我指定某些选项卡应该在横向模式下自动旋转而另一个将在横向和纵向模式下自动旋转时不会自动旋转。

我用过

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

所有UIViewController

并指定横向return YES;其他明智return NO;

另一方面,如果UIViewController should rotate in landscape and portrait i've just返回YES;`总是。

提前谢谢。

1 个答案:

答案 0 :(得分:4)

对于您在tabbarcontroller中加载的所有UIViewController,您必须在

中返回True

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

注意: 标签栏控制器不会自动旋转,除非它包含的所有控制器也自动旋转。

来自Rotate one UIViewController in UITabBar application - >>

在横向模式下只有一个视图没有简单的方法,而其他视图在横向模式下,也不是编程切换到横向模式的简单方法。

一种可能的方法是使用CGAffineTransform在viewWillAppear中转换视图(即,在显示视图之前):

- (void)viewWillAppear:(BOOL)animated; {
   //-- Adjust the status bar
   [UIApplication sharedApplication].statusBarOrientation = UIInterfaceOrientationLandscapeRight;
   //-- Rotate the view
   CGAffineTransform toLandscape = CGAffineTransformMakeRotation(degreesToRadian(90));
   toLandscape = CGAffineTransformTranslate(toLandscape, +90.0, +90.0 );
   [self.view setTransform:toLandscape];
}