如何制作一个委托,我的mapview将不会响应didSelectAnnotationView

时间:2013-06-14 11:20:26

标签: ios xcode cocoa-touch

我有一个mapview,其中分配了自定义类mapviewHandler,它被添加到blaViewController.h中@property (weak, nonatomic) IBOutlet mapviewHandler *mapView;

这是mapviewHandler.m的片段

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view {
    NSLog(@"test");
}

这是头文件op mapviewHandler

#import <MapKit/MapKit.h>

@interface mapviewHandler : MKMapView <MKMapViewDelegate>

@end

为什么连接mapview很难,所以它会将操作称为

- (MKAnnotationView *)mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation {

- (void)mapView:(MKMapView *)mapView
  annotationView:(MKAnnotationView *)annotationView
didChangeDragState:(MKAnnotationViewDragState)newState
    fromOldState:(MKAnnotationViewDragState)oldState
{

我已经苦苦挣扎了几天而且绝望我只是想开始,因为这是我第一次使用Cocoa Touch和xcode,我已经开始讨厌它了,因为我找不到任何好的文档和那些我发现不解释它是如何或只适用于他们而不是我不知道

提前请帮助我解决我的头痛和不眠之夜(是的,因为这是一项特殊任务)

2 个答案:

答案 0 :(得分:0)

控制将mapview拖动到视图控制器并链接代理。

或者创建一个插座(控制从地图拖动到.h文件)。然后让我们说你把它命名为地图。在.m文件中,你会说self.map.delegate = self;你可以在viewDidLoad或你想要的任何其他加载方法中这样说。

你通常会制作一个UIViewController,然后在那里添加mapviewdelegate。看来这是map子类??

答案 1 :(得分:0)

确保您的注释具有标题。

请检查此问题:MKMapView Clicking on pins won't call didSelectAnnotationView

并且不要开始讨厌它,给自己一些时间来学习所有东西: - )