Xcode 6.x / iOS 8 скрывает строку состояния в альбомной ориентации

сборка приложений с помощью Xcode 6.x автоматически скрывает строку состояния в альбомной ориентации (iPhone). То же приложение при компиляции с Xcode 5.x этого не делает.

Как запретить приложению скрывать строку состояния в альбомной ориентации? В принципе, как я могу отключить эту" супер удивительную " функцию, которую Apple / Xcode запихнул мне в горло?

p.s. Я попытался обновить контроллеры представления следующим кодом, но это не так помощь.

- (BOOL)prefersStatusBarHidden {
    return NO;
}

3 ответов


наилучшее решение

это в основном из двух этапов:

1). Установите" просмотр внешнего вида строки состояния на основе контроллера " в NO, в информации вашего проекта.plist файл.

2). Группа статус бар скрыт статус NO, в application:didFinishLaunchingWithOptions:, используя следующий код:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

и вуаля!

Примечание: важно использовать как setStatusBarHidden:withAnimation: высказывания выше, чтобы заставить что-то государство.


ссылки: на iOS8 отображение моего приложения в ландшафтном режиме скроет строку состояния, но на iOS 7 строка состояния отображается на обеих ориентациях


Я использую

#define IS_IOS8 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];

    if (IS_IOS8){
            [[UIApplication sharedApplication] setStatusBarHidden:NO];
    }
}

установите "вид на основе контроллера внешний вид строки состояния" в да на информация.файл plist

затем поместите следующий код в нужный контроллер вида:

- (BOOL)prefersStatusBarHidden {
    return NO;
}