在iPad缩放模式下隐藏状态栏会向下推窗口

时间:2015-10-22 16:39:05

标签: ios objective-c iphone ipad statusbar

当我打电话

[[UIApplication sharedApplication] setStatusBarHidden:hideStatusBar];
在缩放模式下运行iPhone应用程序的iPad上,状态栏甚至无法隐藏。相反,一个20像素的黑色空间被推到我的iPad视图的顶部;尽管我不希望任何人在iPad上使用这款“仅限iPhone”的应用程序,但苹果最终还是拒绝了我的应用程序。

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

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

我也尝试了以下内容:

- (BOOL)prefersStatusBarHidden
{
  return hideStatusBar;
}

然后我需要隐藏状态栏。

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

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

我在iOS 8和9上运行它。

1 个答案:

答案 0 :(得分:0)

我发现,除了您已获得的代码之外,您还必须创建Info Plist BOOL项View Controller Status Bar Appearance(也称为UIViewControllerBasedStatusBarAppearance)并将其设置为YES。

适用于我的代码是:

-(BOOL)prefersStatusBarHidden
{
    return YES;
}

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

    [self setNeedsStatusBarAppearanceUpdate];
...