Если вы используете контроллер панели вкладок, UIKit прямо заявляет, что каждый экземпляр контроллера навигации, который будет отображаться в контексте контроллера панели вкладок, будет находиться среди его свойства viewControllers
. Теперь у каждого экземпляра UINavigationController
есть делегат, который определяет метод navigationController:willShowViewController:animated:
, который позволяет узнать, когда на него помещен контроллер представления.
Установив контроллер панели вкладок в качестве делегата каждого контроллера навигации, который помещается на него, вы можете анализировать, имеет ли установленное свойство представления hidesBottomBarWhenPushed
выдаваемый контроллер представления, и генерировать событие, когда это происходит.
Алгоритм, используемый для скрытия панели вкладок контроллера панели вкладок, заключается в следующем: когда контроллер представления помещается в контроллер навигации, который сам содержится в контроллере панели вкладок, если какой-либо контроллер представления находится в стеке навигации контроллера навигации имеет свойство hidesBottomBarWhenPushed
, тогда панель вкладок должна быть скрыта.
Таким образом, панель вкладок скрыта, когда выбран контроллер навигации и для одного из контроллеров представления в его стеке установлено свойство hidesBottomBarWhenPushed
.