2015-10-22 1 views
0

Когда я называюСкрытие строки состояния на масштабируемого режиме IPad толкает окно вниз

[[UIApplication sharedApplication] setStatusBarHidden:hideStatusBar]; 

на IPad работает приложение iPhone на масштабируемого режиме, в строке состояния, даже не скрывают. Вместо этого черное пространство размером 20 пикселей попадает в верхнюю часть моих iPad-просмотров; в конечном счете, мое приложение отклонено Apple, хотя я не хочу, чтобы кто-либо использовал это приложение iPhone только на iPad.

Если я удалю вызов setStatusBarHidden, iPhone, очевидно, не скрывает строку состояния. На iPad с масштабированным режимом черная полоса больше не отображается.

Внешний вид панели управления на контроллере установлен на NO.

Я также попытался следующие:

- (BOOL)prefersStatusBarHidden 
{ 
    return hideStatusBar; 
} 

и этот набор, прежде чем мне нужно, чтобы скрыть строку состояния.

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

Однако, «prefersStatusBarHidden» не вызывается. Мне просто нужно решение, чтобы черная полоса не отображалась в режиме масштабирования iPad, и строка состояния исчезает на самом iPhone.

Я бегу это на прошивкой 8 и 9.

+0

И я предпочитаю, чтобы не добавить код для обнаружения, что приложение работает в/масштабируется режиме совместимости. – kevinl

ответ

0

Я обнаружил, что, в дополнение к коду у вас есть, вы должны создать Info Plist BOOL пункт View Controller Status Bar Appearance (также называемый UIViewControllerBasedStatusBarAppearance) и установить это ДА.

Код, который работает для меня:

-(BOOL)prefersStatusBarHidden 
{ 
    return YES; 
} 

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

    [self setNeedsStatusBarAppearanceUpdate]; 
...