Mapview的selectAnnotation方法不适用于iOS7

时间:2013-10-19 11:05:26

标签: ios ios7 mkmapview callout

我正在使用iPhone的应用程序,我需要在其中显示不同位置的POI针脚。我需要在第一个POI上显示默认弹出的callout。我已经设法为iOS6做到了这一点,但在iOS7中面临问题。我正在编写下面的代码,它适用于iOS6但不适用于iOS7。它没有显示任何错误但是 对于iOS7,默认情况下我无法在地图POI上调出弹出窗口。

这是我的代码部分:

DDAnnotation *annotation2 = [[DDAnnotation alloc] initWithCoordinate:coordinates addressDictionary:nil] ;
        annotation2.title = [[arrPOIs objectAtIndex:0] objectForKey:@"Name"];
        annotation2.subtitle = [[arrPOIs objectAtIndex:0] objectForKey:@"AmbassadorTagline"];
        annotation2.dictionaryData = [arrPOIs objectAtIndex:0];
        annotation2.strCountNumber = [NSString stringWithFormat:@"1"];

[mapView selectAnnotation:annotation2 animated:YES];
        [annotation2 release];
        annotation2 = nil;

如果您对此有任何想法/建议,请告诉我。

3 个答案:

答案 0 :(得分:2)

我将这段代码用于ios7并且很好

首先

#import <MapKit/MapKit.h>

然后在

  

viewDidLoad中

添加此代码

CLLocationCoordinate2D annotationCoord;
annotationCoord.latitude = someLocation;
annotationCoord.longitude = someLocation;
MKPointAnnotation *annotationPoint = [[MKPointAnnotation alloc] init];
annotationPoint.coordinate = annotationCoord;
annotationPoint.title = @"YourTitle";
annotationPoint.subtitle = @"YourSubtitle";
[map addAnnotation:annotationPoint];

答案 1 :(得分:1)

我为DDAnnotaion检查了这个方法,也使用了简单的mapView drop annotation,它适用于iOS 7. *可能会出现以下情况

1) Annotation is not visible on mapView.
2) Annotation is not yet created/added to mapView.

所以请检查一下。或提供有关如何以及在何处添加注释的完整代码。

请查看讨论点here.以获取更多信息。

答案 2 :(得分:1)

感谢所有人。最后,我找到了我的问题的解决方案。

我在选择注释之前错过了添加一行。这就是: [mapView addAnnotation:annotationPoint];

令人惊讶的是,iOS6没有受到影响。问题仅出现在iOS7上。