MKMapView не обновляется, когда я вызываю setCoordinate - PullRequest
0 голосов
/ 04 июня 2011

Это мой второй вопрос сегодня, и первый был невероятно глупым, поэтому я полностью ожидаю, что этот вопрос тоже будет.

У меня есть вид со встроенным MKMapView.

Я хочу, чтобы кто-нибудь смог добраться до этого MKMapView? Могу ли я подключить его как-нибудь в файле XIB? Или, если это не удалось ... я могу просто извлечь его непосредственно из родительского контроллера представления?

Я хочу сделать что-то вроде использования setCoordinates, но я не могу понять, как получить экземпляр MKMapView для вызова функции.

Как мне получить объект MKMapView.

Ответы [ 3 ]

2 голосов
/ 04 июня 2011

В том месте, откуда вы хотите добраться, установите розетку. В файле .h объявите свойство mapview

MKMapView *mapView;

затем объявите свое свойство с IBOutlet

@property (nonatomic, retain) IBOutlet MKMapView *mapView;

Вы должны иметь возможность управлять перетаскиванием из Владельца файла в вашем файле IB в вид карты в вашем представлении, чтобы установить соединение. Выберите «mapView» в появившемся всплывающем окне, и ваш файл будет подключен к объекту mapview. Затем вы можете использовать свойство mapView в вашем файле .m, чтобы настроить объекты на карте.

[self.mapView setCoordinates:myCoordinates];

Убедитесь, что вы правильно импортировали свой фреймворк.

2 голосов
/ 04 июня 2011

Похоже, вы используете Interface Builder для отображения этого MKMapView. Чтобы получить экземпляр MKMapView, отображаемый на экране, выполните следующие действия.

1) Откройте файл .h контроллера представления для представления, содержащего MKMapView.

2) В разделе переменных экземпляра добавьте строку

IBOutlet MKMapView *mapView;

3) Вернитесь к конструктору интерфейсов и нажмите на карту, которую вы добавили в XIB

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

5) Перетащите синюю линию на список объектов в вашей XIB. Для обычного представления контроллера xib этот список должен быть чем-то вроде владельца файла. Первый ответчик и просмотр. Разблокируйте объект «Владелец файла».

6) Это должно вызвать список соединений. Нажмите на тот, который говорит «mapView»

7) Прибыль! Теперь внутри вашего контроллера представления вы можете получить доступ к экземпляру вида карты, используя переменную экземпляра mapView.

0 голосов
/ 04 июня 2011

Убедитесь, что вы установили свои методы делегата для MKMapView, и методы должны запускаться на вашем классе делегата.

...