0

私のアプリでは、マップ ビューを実装し、注釈を追加しました。

しかし今、ポップオーバーで注釈をクリックすると詳細ビューを表示したいと思います。今までは、calloutAccessoryControl をクリックしてこれを行いました。

しかし、ポップオーバーは注釈のすぐ横から開始する必要があり、calloutAccessoryControl または黒いデフォルト ラベルを表示したくありません。

私のコードは次のとおりです。

- (MKAnnotationView *)mapView:(MKMapView *)myMap viewForAnnotation:(id <MKAnnotation>)annotation
{
AnnotationImageView *myLocationImage = (AnnotationImageView *)[map dequeueReusableAnnotationViewWithIdentifier:defaultID];

    if (myLocationImage == nil )
    {
        myLocationImage = [[[AnnotationImageView alloc] initWithAnnotation:annotation reuseIdentifier:defaultID] autorelease];
        myLocationImage.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];     
    }

    myLocationImage.locationID = [currentAnnotation locationID];
    myLocation = myLocationImage;

    [myLocation setEnabled:YES];
    [myLocation setCanShowCallout:YES]; 

    return myLocation;
}


- (void)mapView:(MKMapView *)myMap annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{

detailsView *popUp=[[detailsView alloc] initWithNibName:@"detailsView_ipad" bundle:nil];


        popView = [[UIPopoverController alloc]initWithContentViewController:popUp];

        popView.delegate =self;

        [popView setPopoverContentSize:CGSizeMake(600, 500)];



AnnotationImageView *myLocationImage = (AnnotationImageView *)view;
        popUp.locationID = myLocationImage.locationID;

[popView presentPopoverFromRect:control.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];

}

アノテーションがクリックされたときにメソッド呼び出しはありますか??

これどうやってするの??

**こんな風に見せたい**

ここに画像の説明を入力

4

1 に答える 1

1

を実装するクラスでは、メソッドMKMapViewDelegateを実装できます。mapView:didSelectAnnotationView:

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)aView {
    //do something...like push a new UIViewController

    if (UIUserInterfaceIdiomPhone == UI_USER_INTERFACE_IDIOM()) {
        //only do something when the app is running on the iPhone
    }
}
于 2013-01-23T13:07:48.627 に答える