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 回答