Это фактически ваша навигационная панель, переключающаяся обратно в режим маленькой панели на нижнем контроллере.
Это потому, что ваша навигационная панель не является полупрозрачной.Это заставляет (по умолчанию) контроллер содержимого останавливаться в нижней части панели навигации.Поэтому, когда панель навигации снова становится маленькой, между ее новым, более коротким дном и верхом контроллера представления нет содержимого.
Ваша иерархия будет выглядеть следующим образом:
Теперь в UIViewController
есть свойство, по умолчанию равное false.Вы можете использовать его, чтобы указать, что вы хотите, чтобы представление вашего контроллера расширялось под непрозрачной полосой:
extendedLayoutIncludesOpaqueBars = true
Это мгновенно заставляет иерархию теперь выглядеть так:
Теперь вы больше не должны получать пробел - но у вас могут быть проблемы с элементами пользовательского интерфейса, идущими под планкой.Вы можете справиться с этим, используя вставки Безопасной области и настраивая макет по мере необходимости, использование edgesForExtendedLayout
также может помочь в зависимости от вашего макета.
TL; DR Use extendedLayoutIncludesOpaqueBars = true