Скрытие строки состояния для приложения iPhone, работающего на iPad - программирование
Подтвердить что ты не робот

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

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

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

-(BOOL)prefersStatusBarHidden{
    return YES;
}

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

[UIApplication sharedApplication]setSetStatusBarHidden:YES]

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

4b9b3361

Ответ 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:)