У меня есть AuthViewController
, который представляет MainViewController
следующим образом:
let mainVC = MainViewContoller()
mainVC.modalTransitionStyle = .CrossDissolve
authVC.presentViewController(mainVC, animated: true, completion: nil)
Я хочу, чтобы AuthViewController
скрывал строку состояния, а MainViewController
- так:
AuthViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
override func preferredStatusBarUpdateAnimation() -> UIStatusBarAnimation {
return .Fade
}
override func prefersStatusBarHidden() -> Bool {
return false
}
}
MainViewController {
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
override func preferredStatusBarUpdateAnimation() -> UIStatusBarAnimation {
return .Fade
}
override func prefersStatusBarHidden() -> Bool {
return false
}
}
Появится строка состояния, однако переопределение preferredStatusBarUpdateAnimation()
игнорируется. Строка состояния отображается без анимации.
Мне удалось получить анимацию, установив prefersStatusBarHidden
на MainViewController
на true
до viewDidAppear
, а затем вызывая это:
UIView.animateWithDuration(0.3) {
self.setNeedsStatusBarAppearanceUpdate()
}
Я не хочу называть это каждый раз. Что я делаю неправильно?