Как скрыть строку состояния в iOS?


Я могу скрыть строку состояния в моем приложении:

- (void)viewDidLoad{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    [super viewDidLoad];
    }

когда я выбрал свой запуск изображения и запустить его в первый раз, это строка состояния над изображением. Как я могу это скрыть?

15 58

15 ответов:

добавьте следующий код в контроллер вида:

if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
    // iOS 7
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
} else {
    // iOS 6
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}

- (BOOL)prefersStatusBarHidden {
    return YES;
}

вам нужно добавить этот код в файл AppDelegate, а не в корневой контроллер вида

или добавить свойство строка состояния изначально скрыта в вашем файле plist

enter image description here

ребята, в iOS 7+

пожалуйста, добавьте это к вашей информации.plist файл, это будет иметь значение :)

UIStatusBarHidden UIViewControllerBasedStatusBarAppearance

enter image description here

для iOS 11.4+ и Xcode 9.4 +

используйте этот код либо в одном, либо во всех контроллерах вида

переопределить var prefersStatusBarHidden: Bool { верните true }

Что мне помогло это (изменение файла plist):

  1. set строка состояния изначально скрыта = да
  2. добавить строку: внешний вид строки состояния на основе контроллера = нет

Hide StatusBar - plist settings

поместите этот код в контроллер вида, в котором вы скрываете строку состояния:

- (BOOL)prefersStatusBarHidden {return YES;}

в iOS 7 внешний вид строки состояния зависит от UIViewController по умолчанию. Чтобы скрыть строку состояния глобально, в info.plist использовать NO значение UIViewControllerBasedStatusBarAppearance ключ и использовать UIApplication ' s setStatusBarHidden метод YESBOOL значение.

добавить этот ключ ключ из выпадающего списка В "информация.plist " и вуаля вы больше не увидите верхнюю панель,которая включает в себя элементы, такие как GSM, значок wifi и т. д.
enter image description here

на info.plist

View controller-based status bar appearance NO
Status bar is initially hidden YES

на view controller.m

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

Я поддерживаю iOS 5, 6 и 7. Мое приложение только для iPad. Мне нужно было использовать все следующее:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Контроллер Вид:

- (BOOL)prefersStatusBarHidden{ return YES; }

информация.файл plist

    <key>UIStatusBarHidden</key>
    <string>YES</string>

    <key>UIStatusBarHidden~ipad</key>
    <true/>

    <key>UIViewControllerBasedStatusBarAppearance</key>
    <string>NO</string>

это работает для меня ,

пожалуйста, добавьте ниже код в инфо.plist file,

 <key>UIStatusBarHidden</key>
 <false/>
 <key>UIViewControllerBasedStatusBarAppearance</key>
 <false/>

надеется, что это работа для кого-то .

просто установите флажок в Targets / Summary iPad Deployment Info, и строка состояния исчезнет. Он работает на моих приложениях.

у меня была такая же проблема, но ее легко исправить! Просто установите

status bar is initially hidden = YES

затем добавьте строку, нажав на плюс сразу после текста status bar is initially hidden, затем установите текст в

view controller-based status bar appearance

, нажимая на стрелки, и установите его в NO

надеюсь, что это помогает!

ну самый простой способ, что я сделать это, введя следующую .m-файл.

- (BOOL) prefersStatusBarHidden
{
    return YES;
}

Это должно работать!

-(void) viewWillAppear:(BOOL)animated
{
     [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
}

полное решение в swift, в вашем контроллере вида

// you can use your own logic to determine if you need to hide status bar
// I just put a var here for now
var hideStatusBar = false
override func preferStatusBarHidden() -> Bool {
    return hideStatus
}


// in other method to manually toggle status bar
func updateUI() {
    hideStatusBar = true
    // call this method to update status bar
    prefersStatusBarHidden()
}

чтобы скрыть строку состояния для каждого отдельного контроллера вида программно, используйте любую из следующих двух процедур:

процедура 1:

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

процедура 2:

- (BOOL)prefersStatusBarHidden {

       return YES;

}

скрыть строку состояния для всего приложения, мы должны следовать приведенной ниже процедура:

вы должны добавить это значение в plist:" внешний вид строки состояния на основе контроллера "и установить его в"НЕТ".

Нажмите здесь, чтобы посмотреть скриншот