Google ios sdk mapview с раскадровками

Можете ли вы посоветовать, поддерживаются ли раскадровки с помощью google maps ios sdk v 1.1. Я получаю странные результаты

У меня есть 2 контроллера просмотра для карт. Первый отображает одну карту и отображается абсолютно нормально, поскольку он помещается в навигационный контроллер с помощью раскадровки push segue.

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

Я загружаю представления в соответствии с примерами SDK в методе loadView.

у меня с ним 3 проблемы

1. При первой загрузке карты с несколькими маркерами карта не отображается/отрисовывается. Когда я нажимаю кнопку, чтобы снова отобразить вид (что ничего не делает, если вид загружен), он затем отображает карту и маркеры.

2. Я закрываю это представление и загружаю другое представление, используя пользовательский переход. если я вернусь к представлению карты с несколькими маркерами, я получаю исключение в методе loadview, когда он пытается назначить представление карты представлению.

  *** Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'A view can only be associated with at most one view controller at a time! View <GMSVectorMapViewBridge: 0x150376a0; frame = (0 0; 320 416); layer = <CALayer: 0x15055cd0>> is associated with <GMMapResultsViewController: 0x10faa2a0>. Clear this association before associating this view with <GMMapResultsViewController: 0xb51ad90>.

3. Наконец, если я загружаю первый контроллер представления карты с одним маркером, он загружается нормально, затем я возвращаюсь ко второму контроллеру представления карты с несколькими маркерами. Та же проблема возникает при рендеринге карты. затем, если я попытаюсь выбрать маркер карты, он не будет обработан делегатом. Даже если бы я загрузил эту карту в первый раз, все бы работало нормально.


person Chris Baxter    schedule 22.02.2013    source источник


Ответы (2)


Я подозреваю, что если вы сделаете следующее, ваша проблема может исчезнуть...

  • добавьте UIView в контроллер представления, где вы работаете
  • установите тип GMSMapView в инспекторе идентификации.

Затем, удерживая нажатой клавишу Control, перетащите его в свой код, как и для любого другого выхода.

Как только вы это сделаете, работа с картами Google станет довольно простой.

person sberley    schedule 25.02.2013

Если кому-то нужен рабочий пример: Google Maps SDK 1.1.2 с раскадровками. Вы можете найти его на github: https://github.com/rendulic/GMaps3D.

person y0gie007    schedule 16.04.2013