2015-10-22 90 views
0

当我在iPad上运行的缩放模式的iPhone应用程序调用隐藏状态栏推窗向下

[[UIApplication sharedApplication] setStatusBarHidden:hideStatusBar]; 

,状态栏竟然不躲。相反,一个20像素的黑色空间被推到我的iPad视图的顶部;最终让我的应用程序被苹果拒绝,尽管我不希望任何人在iPad上使用这款'iPhone only'应用程序。

如果我删除了setStatusBarHidden调用,iPhone显然不会隐藏状态栏。在运行缩放模式的iPad上,黑色条不再显示。

基于视图控制器的状态栏外观设置为NO。

我也曾尝试以下操作:

- (BOOL)prefersStatusBarHidden 
{ 
    return hideStatusBar; 
} 

这种集合之前,我需要隐藏状态栏。

hideStatusBar = YES; //changes 
[self setNeedsStatusBarAppearanceUpdate]; 

但是,不会调用“prefersStatusBarHidden”。我只需要一个解决方案,以使黑条不会出现在iPad缩放模式中,并且状态栏在实际iPhone上消失。

我在iOS 8运行此和9

+0

我宁愿不添加代码,检测应用在兼容/缩放模式下运行。 – kevinl

回答

0

我发现,除了你有代码,您必须创建信息的plist BOOL项目View Controller Status Bar Appearance(也称为UIViewControllerBasedStatusBarAppearance),并设置它是肯定的。

为我的作品的代码是:

-(BOOL)prefersStatusBarHidden 
{ 
    return YES; 
} 

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:NO]; 

    [self setNeedsStatusBarAppearanceUpdate]; 
...