我如何从viewDidLoad方法调用此方法?

时间:2013-06-13 12:40:33

标签: iphone ios objective-c viewdidload

如何从viewDidLoad方法调用此方法?

- (void)mapView:(MKMapView *)mapview didSelectAnnotationView:(MKAnnotationView *)view {
       // code
  }

我坚持语法:[self mapview:.....];

3 个答案:

答案 0 :(得分:1)

您不会致电mapView:didSelectAnnotationViewMKMapView调用它的委托上的函数。检查一下: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#>];

您需要将引用传递给mapViewannotationView才能生效。