次のように定義されたものを管理する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
デリゲートがメソッドに設定されているため、理由がわかりません。
前もって感謝します