在MapView上点击注释时隐藏弹出窗口

时间:2012-12-09 13:20:07

标签: iphone objective-c ios xcode mkmapview

我正在创建一个在地图上显示大量图钉的iPhone应用。我需要该应用程序推送另一个视图,当点击该引脚时,该视图将显示该位置的大量信息。

在我的viewDidAppear中,我有一段代码,用于设置引脚的标题和副标题值,仅用于测试目的。

-(void)viewDidAppear:(BOOL)animated
{
            pin.title = @"Some title";
            pin.subtitle = @"Some subtitle";
}

在我的didSelectAnnotationView委托中,我有这方面的内容

- (void)mapView:(MKMapView *)mapView
didSelectAnnotationView:(MKAnnotationView *)view
{    
    [self performSegueWithIdentifier:@"showPinDetails" sender:self];    
}

现在,当我点击图钉时,弹出一个短暂的弹出窗口,在弹出窗口中显示标题和副标题,然后segue推送详细信息视图。当我点击后面的按钮将我重新调回到地图视图时,弹出窗口仍然可见。 我怎么能以某种方式完全隐藏或禁用弹出窗口?如果我没有设置标题和副标题值,那么didSelectAnnotationView委托根本不会被调用。如果你需要我,我会很乐意发布额外的代码,我只是想让事情变得尽可能简单。

我这样做错了吗?我应该使用一些不同的方法来实现我需要做的事情吗?感谢

2 个答案:

答案 0 :(得分:8)

您没有设置canShowCallout

canShowCallout - >一个布尔值,指示注释视图是否能够在标注气泡中显示额外信息。

讨论 - > 如果此属性的值为YES,则当用户点击选定的注释视图时会显示标准的标注气泡

如需了解更多信息,请访问MKAnnotationView Class Reference

答案 1 :(得分:5)

好吧,我是傻瓜,在添加引脚时,我需要做的就是设置引脚属性 canShowCallout

annotationView.canShowCallout = NO;