如何设置横向左侧和右侧的状态栏方向?

时间:2012-10-18 08:34:19

标签: ios6 orientation

您好我已经开发了一个完全以横向模式运行的iPad应用程序然后在ios 6中安装了相同的应用程序它被迫以纵向模式运行所以我在我的代码中添加了一些东西,通过这些东西ican在横向模式下运行我的应用程序ios6和更低版本。但我的问题是在我旋转之后然后我推到下一个视图景观右转变成景观左。如果我不旋转那么没问题它完美地工作。即使我也旋转它应该完美的工作请帮助我这样做。

在视图中确实加载我给出了下面的行。

    - (void)viewDidLoad {
    [super viewDidLoad];
if (IOS_OLDER_THAN_6)
       [[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationLandscapeLeft animated:NO];
       //[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
}

然后我用以下的线代替了自动旋转。

我会检查iOS版本,如果它少于6我添加到行

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation{
return (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||(toInterfaceOrientation == UIInterfaceOrientationLandscapeRight);

}

如果iOS版本为6及以上,我将提供以下代码行

    -(BOOL)shouldAutorotate
{
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

在上面的代码中我已经提到它应该同时支持landscapeleft和landscape右边但是在viewDidLoad中我只提到了左边的景观,所以这就是问题所在。 Some One指导我为左侧景观和landscapeRight提供状态方向。甚至尝试过两行但两个方向没有变化,所以我评论了一个。这就是我的问题的原因。请有人帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

你不需要提供

[[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationLandscapeLeft animated:NO]; 为您的状态栏旋转。这两位代表

-(BOOL)shouldAutorotate
{
    return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

就足够了。此外,当我在模拟器上测试应用程序时,它无法正常工作,但当我在设备上运行相同的应用程序时,方向正常工作。因此,一旦尝试运行您在iOS6设备上创建的应用程序。