mapView annotationView calloutAccessoryControlTapped上的问题

时间:2013-10-24 16:53:17

标签: ios google-maps mkannotationview

我有这个问题:

在我的应用程序中,我使用这个非常简单的代码:

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
       self.mapPopup.hidden=false;
    }

我的应用程序的iOS 6版本上的这段代码非常适合....在iOS7的同一个应用程序中,当我点击2次时,应用程序崩溃。

出现的错误是“EXC_BAD_ACCESS”。

我还注意到在ios6中没有区别于左触摸或右触摸(在注释上)......在ios7中是的!

我必须管理不同的触摸(左和右)?

为了更好地理解...... 我有这样的东西: enter image description here

如果我点击蓝色按钮,一切正常(应用程序打开详细视图)。 当我关闭打开的视图时,如果我点击文本(即“当前位置”),我的应用程序崩溃

2 个答案:

答案 0 :(得分:1)

我道歉 我犯了一个大错:我用过这段代码:

[rightButton addTarget:self:@selector(mapView:annotationView:calloutAccessoryControlTapped:) forControlEvents:UIControlEventTouchUpInside];

用于指定操作,但这会执行两次代码...可能是崩溃的原因!!!

问题解决了!!! :D感谢iRD的关注......

答案 1 :(得分:0)

您是否使用diddeselectmethod进行注释视图?

当我选择任何注释视图时,我也面临同样的问题:

我刚刚在didDeselectannotation视图方法中添加了hide和show:

- (void)mapView:(MKMapView *)mapView didDeselectAnnotationView:(MKAnnotationView *)view {

     customAnnotationView.hidden=NO;

    if (_calloutAnnotation&& ![view isKindOfClass:[CustomAnnotationView class]]) {
        if (_calloutAnnotation.coordinate.latitude == view.annotation.coordinate.latitude&&
            _calloutAnnotation.coordinate.longitude == view.annotation.coordinate.longitude) {

            [customAnnotationView setHidden:YES];
        }
    }
}