У меня есть два контроллера вида: сначала со статусом и панелью навигации, затем со статусом и панелью навигации,
при использовании iPhone X, Xs, Xs Макс. поп-интерактивный жест работает хорошо
но при использовании устройств без интерактивного жеста с надрезом не анимируйте скрытие строки состояния
class ViewController1: UIViewController {
override var prefersStatusBarHidden: Bool{
return true
}
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation{
return .slide
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .red
navigationController?.isNavigationBarHidden = true
addBtn()
}
// add button in center view
fileprivate func addBtn() {
let button = UIButton()
view.addSubview(button)
button.translatesAutoresizingMaskIntoConstraints = false
button.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
button.setTitle("go to 2 vc", for: .normal)
button.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(goTo2)))
}
@objc func goTo2(){
navigationController?.pushViewController(ViewController2(), animated: true)
}
}
class ViewController2: UIViewController {
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation{
return .slide
}
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .blue
navigationController?.setNavigationBarHidden(false, animated: true)
}
}