Как решить проблемы ориентации SDK Google Maps с помощью TabViewController - PullRequest
0 голосов
/ 04 марта 2019

Я запустил проект iOS для iPhone, где я подумал, что может понадобиться панель вкладок.Позже я решил, что мне это не нужно (мне нужно дополнительное место на экране), и поэтому я попытался удалить панель вкладок и установить свой основной ViewController в качестве начального viewController в раскадровке.

Это вызвало странную ошибку, когда ориентация устройства больше не регулируется должным образом.Например, переключение из портретной ориентации, показанное на рисунке:

enter image description here

становится таким в альбомной ориентации:

enter image description here

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

Я попробовал следующее:

  • Я восстановил панель вкладок, и проблема исчезла.Эта проблема вызвана тем, как я удаляю панель вкладок, а не какой-то другой проблемой.
  • Я искал другие статьи, посвященные этой проблеме.До сих пор я видел только документацию о том, как установить панель вкладок, а не о том, как ее безопасно удалить.
  • Я попытался подключить панель вкладок к viewController с помощью IBOutlet, а затем установить tabBar.isHidden =правда.Это плохой взлом, но он все равно не сработал.UITabBar не имеет такого члена.
  • Я попытался сравнить настройки между tabBar viewController и моим желаемым начальным viewController в Инспекторе, чтобы увидеть, что может отличаться.Помимо начального флажка viewController, я не вижу настройки, которая может быть причиной этого.

ВОПРОС: Это проблема с настройками в раскадровке (или в другом месте) или это просто ошибка?Моя следующая попытка решения будет состоять в том, чтобы удалить всю раскадровку, а затем воссоздать ее и подключить обратно к viewController.Я бы хотел избежать этой работы, если в ней нет необходимости.

Любая помощь приветствуется.Если я найду решение, я обязательно опубликую его.Спасибо!

ОБНОВЛЕНИЕ: я нашел обходной путь, перейдя к контроллеру панели вкладок пользовательского интерфейса в раскадровке, выбрав панель вкладок в «Сцена контроллера панели вкладок» -> «Контроллер панели вкладок», а затем установив флажок «скрытый».в инспекторе.Это дает желаемый эффект избавления от панели вкладок при запуске приложения.Как будто его там нет.

Хотя это позволяет мне продолжить работу с приложением, на панели вкладок есть ненужный код, лежащий в моем приложении, от которого я хотел бы избавиться.

1 Ответ

0 голосов
/ 18 июня 2019

С тех пор, как я впервые написал это сообщение, я экспериментально обнаружил, что каждый раз, когда я добавлял GMSMapView от Google в viewController, программно или в раскадровке, у меня возникали вышеуказанные проблемы с ориентацией.Моей первоначальной проблемой было не то, что я думал, это

. С тех пор я пытался полностью перестроить раскадровку, viewController и все, но проблема не исчезла.Я также попытался перегрузить методы ориентации для вида безрезультатно.

Однако, если у вас возникла проблема с ориентацией в Google Maps sdk, вставьте контроллер представления, содержащий ваш GMSMapView, в контроллер представления вкладок, а затем скрыв панель вкладок (если вы не хотите панель вкладок), исправьтевопрос ориентации в моем проекте.Это не красиво, но это работает.

...