如何从viewDidLoad
方法调用此方法?
- (void)mapView:(MKMapView *)mapview didSelectAnnotationView:(MKAnnotationView *)view {
// code
}
我坚持语法:[self mapview:.....];
答案 0 :(得分:1)
您不会致电mapView:didSelectAnnotationView
。 MKMapView
调用它的委托上的函数。检查一下:how to fire mapView:didSelectAnnotationView ?
[self.delegate mapView:someMapView didSelectAnnotationView:someAnnotationView];
答案 1 :(得分:1)
你没有 - 这是当用户触摸MKMapView
时从MKAnnotationView
获得的回电。如果您想在加载MKMapView
时自动选择注释,请使用其selectAnnotation:animated
方法。
-(void)viewDidLoad {
MKMapView *mapView = // whatever
MKAnnotation *annotation = // whatever
[mapView selectAnnotation:annotation animated:YES]; // could be no, in viewDidLoad it won't necessarily be visible
}
当您拨打selectAnnotation:animated:
时,会弹出您的注释,然后,如果用户触摸它,您的mapView:didSelectAnnotation:
将被调用。作为一项规则,您永远不会在MKMapViewDelegate
(或任何*代表)中调用方法。系统会在适当的时候为您打电话。
P.S。 viewDidLoad
不参与辩论。
答案 2 :(得分:0)
将其粘贴到xcode中:
[self mapView:<#MKMapView instance#> didSelectAnnotationView:<#MKAnnotationView instance#>];
您需要将引用传递给mapView
和annotationView
才能生效。