Я работаю над приложением для iPhone с XCode 10 и iOS 11.
Я пытаюсь анимировать строку состояния вне экрана при переходе от одной сцены к другой.
В моем первом контроллере представления (TableViewController) я объявляю:
var isStatusBarHidden = false
Затем добавляю следующее:
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation {
return .slide
}
, а затем в методе подготовки:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "resultSegue" {
...
isStatusBarHidden = true
UIView.animate(withDuration: 0.5, animations: {
self.setNeedsStatusBarAppearanceUpdate()
})
}
}
Во втором контроллере представления (ViewController) у меня есть
var isStatusBarHidden = true
и
override var prefersStatusBarHidden: Bool {
return true
}
Анимация отлично работает на iPhone 8. Однако на iPhone X, хотястрока состояния действительно появляется и исчезает, она не анимируется.
Как сделать так, чтобы анимация происходила и на iPhone X?