Подтвердить что ты не робот

Скрыть строку состояния В приложении iOS 8

Я пробовал

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

Это ничего не делает.

И я просмотрел файл Info.plist для "Просмотр состояния панели управления на основе контроллера", но он не существует.

Как я могу скрыть белую строку состояния в верхней части экрана (с часами и зарядом аккумулятора) внутри моего приложения для Xcode 6? Спасибо!

4b9b3361

Ответ 1

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

Objective-C

-(BOOL)prefersStatusBarHidden{
    return YES;
}

Swift 2

override func prefersStatusBarHidden() -> Bool {
    return true
}

Swift 3 +

override var prefersStatusBarHidden: Bool {
    return true
}

И не забудьте установить (если вы представляете контроллер вида, вызывая метод presentViewController: анимированный: завершение:):

Objective-C

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;

Swift

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true

Документация: https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

Если вы измените строку состояния с какого-либо контроллера контейнера (например, UINavigationController или UIViewController с контроллерами дочерних элементов), и вы хотите изменить диспетчер отображения, ответственный за строку состояния, вы должны использовать свойство childViewControllerForStatusBarHidden:. Например:

Установить экземпляр контроллера первого вида, который всегда отвечает за управление строки состояния

Objective-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return childViewControllers.first; // or viewControllers.first
}

Swift 2

override var childViewControllerForStatusBarHidden() -> UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

Swift 3 +

override var childViewControllerForStatusBarHidden: UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

Установить контроллер представления контейнера, ответственный за управление статусом

Objective-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return nil;
}

Swift 2

override func childViewControllerForStatusBarHidden() -> UIViewController? {
    return nil
}

Swift 3 +

override var childViewControllerForStatusBarHidden: UIViewController? {
    return nil
}

Документация: https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh

Ответ 2

  • Перейти в файл Info.plist
  • Наведите курсор на одну из этих строк и появится кнопка (+) и (-).
  • Нажмите кнопку "плюс", чтобы добавить новый ключ
  • Введите начальное значение с капиталом V и автоматически первый выбор будет Просмотр состояния строки состояния на основе контроллера. Добавьте это как КЛЮЧ.
  • Установите для VALUE значение "НЕТ"
  • Перейти к вам AppDelegate.m для Objective-C (для быстрого языка: AppDelegate.swift)
  • Добавьте код внутри метода

Для Objective-C:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [application setStatusBarHidden:YES];

    return YES;
}

Для Swift:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool {
    application.statusBarHidden = true

    return true
}

Готово! Запустите приложение и не увидите строку состояния!

Ответ 3

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

"Просмотр состояния строки состояния на основе контроллера" установлен на NO

вторая

"Строка состояния изначально скрыта" установлена ​​на YES

Ответ 4

Вы можете добавить эту строку в свой файл Info.plist, если ее там нет. Просто зайдите в проект в Xcode, перейдите в раздел "Информация" и наведите указатель мыши на одну из существующих строк. Должна появиться кнопка "+", позволяющая добавить строку и ввести "Просмотр состояния панели управления на основе контроллера".

Ответ 5

Для iOS 10 с Swift 3 вы должны использовать:

override var prefersStatusBarHidden: Bool {
    get {
        return true
    }
}

Ответ 6

  • Открыть info.plist
  • "Просмотр состояния строки состояния на основе контроллера" установлен на NO
  • "Строка состояния изначально скрыта" установлена ​​на YES
  • Готово

Не нужно писать строку кода... Приветствия

Ответ 7

Если вы используете UIDocumentInteractionController для отображения данных, тогда вы никогда не скрываете строку состояния, поэтому я имею альтернативу этой

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

эта строка меняет цвет содержимого строки состояния на белый