Скрытие строки состояния для приложения 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:)