0

嗨,我开发了一个 iPad 应用程序,它将完全以横向模式运行,然后在 ios 6 中安装了相同的应用程序,它被迫以纵向模式运行,所以我在我的代码中添加了一些东西,通过这些东西我可以在 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 right,但是在viewDidLoad 中我只提到了landscape left,所以这就是问题所在。有人指导我为横向左侧和横向右侧提供状态方向。甚至尝试在两行中给出两个方向,但没有改变,所以我评论了一个。这就是我的问题的原因。请有人帮我解决这个问题。

4

1 回答 1

0

你不需要给

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

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

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

于 2012-10-18T09:11:52.180 回答