0

次のように定義されたものを管理するUIViewControllerクラスがあります。MKMapView

@interface MapViewController : UIViewController <MKMapViewDelegate>

このView Controllerの実装には、次のものがあります。

- (void)loadView
{
   MKMapView *mapView = [[MKMapView alloc] initWithFrame:CGRectMake(0, 0, 300, 200)];
   mapView.delegate = self;
   self.view = mapView;
}


- (void)centerMapInLoc:(CLLocation *)loc
{
   CustomAnnotation *annotation = [[CustomAnnotation alloc] initWithCoordinates:loc.coordinate title:@"My position" subTitle:nil];

   [(MKMapView *)self.view addAnnotation:annotation];
}


- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
   MKAnnotationView *v = nil;

   // Custom logic

   v.annotation = annotation;
   return v;
}

パブリックcenterMapInLoc:メソッドであるため、別のビュー コントローラーから呼び出します。アノテーションはそのようなメソッド内で作成されますがviewForAnnotation:、アノテーションが追加されたときにデリゲート メソッドは呼び出されません。loadViewデリゲートがメソッドに設定されているため、理由がわかりません。

前もって感謝します

4

0 に答える 0