Обобщенное решение с протоколом, которое будет работать на всех экранах
Создайте UIViewController
с именем BaseViewController
и сделайте его базовым классом всех ваших контроллеров представления
Теперь определите протокол
protocol ProtocolHideTabbar:class {
func hideTabbar ()
}
protocol ProtocolShowTabbar:class {
func showTabbar ()
}
extension ProtocolHideTabbar where Self : UIViewController {
func hideTabbar () {
self.tabBarController?.tabBar.isHidden = true
}
}
extension ProtocolShowTabbar where Self : UIViewController {
func showTabbar () {
self.tabBarController?.tabBar.isHidden = false
}
}
По умолчанию мы хотим показывать панель вкладок в каждом контроллере представления, поэтому
extension UIViewController : ProtocolShowTabbar {}
В вашем контроллере BaseView
в поле зрения появится метод, добавьте следующий код, чтобы показать скрытие на основе протокола
if self is ProtocolHideTabbar {
( self as! ProtocolHideTabbar).hideTabbar()
} else if self is ProtocolShowTabbar{
( self as ProtocolShowTabbar).showTabbar()
}
Как пользоваться
Просто
class YourViewControllerWithTabBarHidden:BaseViewController,ProtocolHideTabbar {
}
Надеюсь, это полезно