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

Не удается скрыть состояние Bar-Swift 3,

Я обычно скрываю строку состояния с помощью

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

но Xcode дает мне ошибку, говоря: "Метод не отменяет ничего из своего суперкласса".

Если я удалю override, Xcode выдаст другую ошибку: "Метод" prefersStatusBarHidden() "с Objective-C selector 'prefersStatusBarHidden' конфликтует с getter для 'prefersStatusBarHidden' из суперкласса 'UIViewController' с тем же Objective-C селектор"


У меня также есть "Скрыть строку состояния" в моих общих настройках Target:

введите описание изображения здесь

но строка состояния все еще отображается.


Я нашел этот метод в другом ответе на переполнение стека

UIApplication.shared.setStatusBarHidden(true, with: .none)

но это также не скрывает строку состояния.


В Xcode 8 Beta 1 я использовал первый и второй методы, которые работали, чтобы скрыть строку состояния (первый метод не возвратил ошибку). Что я могу сделать теперь, чтобы скрыть строку состояния с помощью Xcode 8 Beta 4?

Примечание. Строка состояния отображается на устройствах Simulator и физических устройствах, все работают под управлением iOS 10.

4b9b3361

Ответ 1

Нам нужно переопределить свойство на Swift 3 (это новое в Xcode 8 Beta 4):

override var prefersStatusBarHidden: Bool {  
    return true  
}  

для другого примера также вы можете получить здесь и здесь

Подробнее о том, что такое изменение и почему это необходимо, см. Мэтт отличный ответ на это.