#iphone #objective-c #mkmapview #xib #nib
#iPhone #objective-c #mkmapview #xib #перо
Вопрос:
Это мой второй вопрос сегодня, и первый был невероятно глупым вопросом, поэтому я полностью ожидаю, что и этот будет таким же.
У меня есть представление со встроенным MKMapView.
Я хочу каким-то образом получить доступ к этому MKMapView? Могу ли я каким-либо образом подключить его в файле xib? Или это не удается… могу ли я просто извлечь его непосредственно из родительского контроллера представления?
Я хочу делать что-то вроде использования setCoordinates, но я не могу понять, как получить доступ к экземпляру MKMapView для вызова функции.
Как мне получить доступ к объекту MKMapView.
Ответ №1:
В том месте, откуда вы хотите получить к нему доступ, настройте выход. В файле .h объявите свойство mapview
MKMapView *mapView;
затем объявите его свойство с помощью IBOutlet
@property (nonatomic, retain) IBOutlet MKMapView *mapView;
Вы должны иметь возможность управлять перетаскиванием от владельца файла в вашем IB-файле к mapview в вашем представлении, чтобы установить соединение. Выберите «MapView» во всплывающем окне, которое появляется, и ваш файл будет подключен к объекту mapview. Затем вы можете использовать свойство mapView
в вашем файле .m, чтобы задать параметры в mapview.
[self.mapView setCoordinates:myCoordinates];
Убедитесь, что вы также правильно импортируете свой фреймворк.
Комментарии:
1. Извините за медленный ответ. У меня некоторое время не было возможности вернуться к iPhone. Хотя вы полностью правы. Я не знал, что вы можете перейти от владельца файла к объекту. Я пытался наоборот! Приветствия!
2. Рад, что это сработало. На самом деле вы можете перетащить его и другим способом (от объекта к владельцу файла) для действий. Одним из примеров является
UIButton
действие.
Ответ №2:
Похоже, вы используете Interface Builder для отображения этого MKMapView. Чтобы иметь возможность получить экземпляр MKMapView, который отображается на экране, выполните следующие действия.
1) Откройте файл .h контроллера представления для представления, содержащего MKMapView.
2) В разделе переменные экземпляра добавьте строку
IBOutlet MKMapView *mapView;
3) Вернитесь в interface Builder и щелкните на виде карты, который вы добавили в XIB
4) Нажмите Control и, удерживая его нажатой, щелкните и перетащите на вид карты. Это должно привести к тому, что синяя линия будет следовать за вашей мышью от точки на карте.
5) Перетащите синюю линию в список объектов в вашем XIB. Для обычного контроллера просмотра xib этот список должен быть чем-то вроде владельца файла. Первый ответчик и просмотр. Снимите флажок с объекта «Владелец файлов».
6) При этом должен появиться список подключений. Нажмите на тот, который говорит «MapView»
7) Прибыль! Теперь внутри вашего контроллера просмотра вы можете получить доступ к экземпляру вида карты, используя переменную экземпляра MapView.
Ответ №3:
Убедитесь, что вы установили свои методы делегирования для MKMapView, и методы должны запускаться в вашем классе делегата.