Синяя предупреждающая строка Apple перекрывает NavBar моего контроллера навигации - PullRequest
0 голосов
/ 24 января 2019

У меня есть настройки вида внутри UINavigationController. Синяя панель предупреждений отображается поверх NavBar панели NavigationController. В другой части моего проекта у меня есть другая установка UINavigationController внутри UITabController. NavBar предоставляет достаточно места для отображения синей панели предупреждения без наложения.

Чего мне не хватает? Как я могу предотвратить наложение синей полосы на панель NavBar? Синяя полоса стыда

1 Ответ

0 голосов
/ 13 февраля 2019

Я разобрался!

Вот что на самом деле происходит:

У меня есть View Controller внутри Navigation Controller.Этот View Controller содержит список «Встреч».Когда пользователь нажимает на «Встречу», приложение переходит к подробному представлению, в котором используется контроллер панели вкладок с пятью вкладками, каждая из которых имеет свой собственный контроллер навигации.Первая вкладка имеет поле адреса, которое позволяет пользователю запускать приложение навигации (Apple Maps, Google Maps или Waze), нажав на него.

После открытия приложения навигации, если пользователь возвращается в мое приложение во времяприложение навигации все еще открыто, и они не предоставили надлежащего разрешения для подавления синей полосы стыда, тогда синяя полоса стыда отображается над моей панелью навигации, как и должно быть.Если затем они нажмут кнопку «Назад», чтобы закрыть контроллер панели вкладок и вернуться к исходному контроллеру навигации, поверх панели навигации будет наложена синяя полоса позора.

Я не уверен, что этоошибка с UIKit или нет.

Что я сделал, чтобы обойти это:

Я изменил способ, которым выбор списка встреч открывает детали выбранного встречи.Я использовал простой переход.По какой-то причине при переходе назад к представлению «Список назначений» из «Сведения о назначении» панель навигации представления «Список назначений» не учитывала расширенную строку состояния при отображении синей панели позора.Я закончил тем, что полностью заменил rootView, отображавший список встреч, контроллером панели вкладок сведений о встрече.При переходе назад я делаю то же самое в обратном порядке - заменяю Детали встречи списком встреч;похоже, это облегчило проблему рендеринга.

Затем я создал расширение для UIWindow, чтобы эмулировать переход стиля навигации по умолчанию во время замены rootView.

...