iOS 6中iPad2不支持设置状态栏方向

3

我找到了很多与我的问题相关的答案,但没有人能帮助我解决问题。

如标题所示,iOS 6中状态栏方向不会更改。我编写了正确的代码以更改状态栏方向,但对我来说不起作用。它在iOS模拟器和设备(iPad)上都无法工作。

在我的rootviewcontroller中,我实现了与下面代码相同的UIInterfaceOrientationMaskAll,之后,我使用presentModelViewController来带来子视图控制器,但在子视图控制器中,我无法更改状态栏方向。

我也实现了

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    return UIInterfaceOrientationMaskAll;
}

在AppDelegate文件中。

我的代码如下:

-(BOOL) shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}


-(void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
   [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];

}

请帮我解决这个问题。


你正在应用程序委托中将状态栏方向设置为纵向,并在根视图中设置视图以遮盖所有内容。如果您在根视图中使用该方法,则无需在应用程序委托中应用它。您是否尝试注释掉应用程序委托中的方向方法,并查看状态栏是否仅使用根视图中应用的方法更改方向? - Adrian P
1个回答

3

你需要在rootViewController的shouldrotate方法中回答NO,这样才能使其工作。

请查看文档

讨论:此属性的值是一个常量,表示接收者状态栏的方向。有关详细信息,请参见UIInterfaceOrientation。设置此属性会将状态栏旋转到指定方向,而不会动画过渡。但是,如果您的应用程序具有可旋转的窗口内容,则不应随意使用此方法设置状态栏方向。如果设备更改方向,则此方法设置的状态栏方向不会更改。有关可旋转的窗口视图的更多信息,请参见iOS的View Controller编程指南。

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/occ/instp/UIApplication/statusBarOrientation


嘿,朋友...非常感谢你...:) 我通过你的代码解决了我的问题。 - user2289379

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接