Вы должны установить это свойство для контроллера вида, который нажат .Важно отметить, что установка его в viewDidLoad
слишком поздняя.Вместо этого вы должны установить, когда инициализируется экземпляр контроллера представления:
class PushedVC: UIViewController {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
sharedInit()
}
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
sharedInit()
}
private func sharedInit() {
hidesBottomBarWhenPushed = true
}
}
Конечно, вы также можете просто установить галочку Hide Bottom Bar on Push
для конкретного контроллера представления при использовании раскадровок.
Дляпри таком подходе убедитесь, что ваша центральная кнопка скрыта / показана с панелью вкладок, и вам нужно добавить ее в качестве подпредставления панели вкладок в вашем подклассе UITabBar
.Затем вы переопределяете hitTest
, чтобы сделать его полностью всплывающим (конечно, это необходимо, только если кнопка превышает рамку панели вкладок):
class TabBar: UITabBar {
let centerButton = ...
// ...
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if centerButton.frame.contains(point) {
return centerButton
}
return super.hitTest(point, with: event)
}
// ...
}