Скрытие строки состояния для приложения iPhone, работающего на iPad

Мое приложение iPhone требует, чтобы строка состояния была скрыта во все времена. Это, как правило, легко сделать, и это работает, если я только запускаю приложение на iPhone. Однако, если я запустил приложение на iPad, строка состояния все еще отображается в верхней части содержимого. Итак, как я могу убедиться, что строка состояния скрыта независимо от того, на каком устройстве работает приложение для iPhone? В настоящее время я делаю следующее в своем коде:

Вызов этого метода для каждого контроллера представления (я фактически создал категорию на UIViewController, которая автоматически реализует это для любого VC, но в основном это то же самое, что записывать его в каждый файл vc):

-(BOOL)prefersStatusBarHidden{
    return YES;
}

Я также устанавливаю "скрытую строку состояния" на "YES" и "Просмотр состояния панели управления на основе контроллера" на NO в Info.plist. Я также попытался определить, какое устройство используется и вызывает

[UIApplication sharedApplication]setSetStatusBarHidden:YES]

в AppDelegate, но не повезло и там. Итак, я считаю, что я пробовал все, что можно было бы попробовать.

Ответ 1

Кажется, это было введено в iOS 7.1 и влияет на не-сетчатые iPads, работающие с приложениями iPhone с графикой сетчатки.

Нет решения для разработчиков. Я думаю, что Apple придется исправлять этот...

Проблемные устройства: iPad 2 iPad Mini (без сетчатки).

Проблема не существует в iOS 7.0, и проблемы с строкой состояния могут быть исправлены для 7.0 с другими опубликованными решениями.

Обновление за сентябрь 2014 года - iOS 8:

Эта ошибка исправлена ​​для iOS 8!!!!!

Ответ 2

Добавьте этот код.

- (BOOL)prefersStatusBarHidden{
return YES;}

Ответ 3

Добавьте свойство YourViewController в качестве

@property BOOL statusBarHidden;

а затем в ViewDidLoad добавить следующие строки кода

    [self prefersStatusBarHidden];
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
    self.statusBarHidden = YES;

Затем добавьте метод в YourViewController

- (BOOL)prefersStatusBarHidden{
return YES;}

а также не забывайте добавлять #import <UIKit/UIKit.h> в свой код, он отлично работает для IOS6.1 и 7.0:)