首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >发送时提取MKAnnotation标注的标题

发送时提取MKAnnotation标注的标题
EN

Stack Overflow用户
提问于 2010-12-03 04:19:19
回答 1查看 2.1K关注 0票数 2

好的,伙计们,我有一个带有注释的地图视图,当点击时,它们会在右侧显示带有披露图标的标注。点击时,将调用此函数:

代码语言:javascript
复制
- (void)showDetails:(id)sender
{
    NSLog(@"showDetails: called!");
    NSLog(@"sender: %@",sender);
    PermitDetailViewController *permitDetail = [[PermitDetailViewController alloc] initWithStyle:UITableViewStyleGrouped];
    NSLog(@"permitDetail.title: %@",permitDetail.title);
    permitDetail.title = sender.title; //compiler doesn't like this!
    NSLog(@"permitDetail.title: %@",permitDetail.title);
    [self.navigationController pushViewController:permitDetail animated:YES];
    [permitDetail release];
}

到目前为止一切都很好,但是我需要知道标注的标题是什么。我正在尝试做sender.title,但效果不佳……有什么想法吗?

这是当我将有问题的行更改为permitDetail.title = self.title;时的控制台输出

代码语言:javascript
复制
2010-12-02 11:50:06.044 Parking[55413:207] showDetails: called!
2010-12-02 11:50:06.045 Parking[55413:207] sender: <UIButton: 0x8139890; frame = (104 8; 29 31); opaque = NO; autoresize = LM; layer = <CALayer: 0x8139920>>
2010-12-02 11:50:06.045 Parking[55413:207] permitDetail.title: (null)
2010-12-02 11:50:06.045 Parking[55413:207] permitDetail.title: All Permits
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-03 04:40:54

在本例中,发送者是callout按钮(而不是MKAnnotation),因此它没有title属性。

在viewForAnnotation中,删除展开按钮上的addTarget。只需将注释视图的rightCalloutAccessoryView设置为按钮即可。

然后实现calloutAccessoryControlTapped委托方法,该方法将在点击callout时调用。它还提供了对调用中注释视图的引用。注释视图包含对注释的引用:

代码语言:javascript
复制
- (void)mapView:(MKMapView *)mapView 
        annotationView:(MKAnnotationView *)view 
        calloutAccessoryControlTapped:(UIControl *)control
{
    NSLog(@"callout annotation.title = %@", view.annotation.title);

    //do your show details thing here...
}
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4339445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档