objective c mapkit在注释中单击按钮

时间:2012-12-31 10:25:04

标签: objective-c annotations mapkit

您好我的应用程序中有一个地图视图页面,我显示200 +标记。

我现在用

启动这些
MapViewAnnotation *newAnnotation = [[MapViewAnnotation alloc] initWithTitle:currentobjectarray.title andCoordinate:location];

单击标记时会生成文本标签。如何在注释视图中添加一个按钮,以便在单击时可以导航到所选标记的“更多信息”页面?它是我不确定的按钮部分。

任何帮助非常感谢

1 个答案:

答案 0 :(得分:2)

您需要创建UIButton并将其分配给MKAnnotationView的rightCalloutAccessoryView属性。

mapView:viewForAnnotation:方法中,您将返回自定义MKAnnotationView实例,请插入此代码以创建按钮并将其与操作相关联。

我认为您的MKAnnotationView实例名为annotationView,并且您要调用的方法是presentMoreInfo

UIButton * disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[disclosureButton addTarget:self
                     action:@selector(presentMoreInfo)
           forControlEvents:UIControlEventTouchUpInside];
annotationView.rightCalloutAccessoryView = disclosureButton;

您的presentMoreInfo方法可能类似于

- (void)presentMoreInfo {
    DetailsViewController * detailsVC = [DetailsViewController new];

    //configure your view controller
    //...

    [self.navigationController pushViewController:detailsVC animated:YES];
}