2016-04-29 10 views
1

マップビューコントローラをビルドしても問題ありません。マップ上でアノテーションビューを選択すると、カスタムビューが画面に表示され、そのアノテーションに関する情報が表示されます。マップをタップすると、注釈ビューの選択が解除され、カスタム表示が非表示になります。did地図ビューでタップしたときにDeselectAnnotationViewが呼び出されない

私は、ビューに一つだけの注釈がある場合、マップビューコントローラが押し込まれたときに、カスタムビューを示すことが、今の要件を得る。だから私は単に

- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view

たときに、マップビューを実装ロードを完了しました。

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView { 
    if (self.viewModel.pointsArray.count == 1) { 
     GSMapsLocationPoint* point = self.viewModel.pointsArray.lastObject; 
     MKAnnotationView *annotationView = [self.mapsView viewForAnnotation:point]; 
     [self mapView:self.mapsView didSelectAnnotationView:annotationView]; 
    } 
} 

しかし、私が地図をタップすると、- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)viewは呼び出されません。その注釈ビューを手動でタップすると、didSelectAnnotationViewが正しく呼び出されます。

コード内でdidSelectAnnotationViewというコールがいくつかのステータスを変更していないように見えるので、マップビューでは注釈ビューが選択されていることがわかりません。

どうすればこの問題を解決できますか?前もって感謝します。

答えて

1

あなたはselectAnnotation:代わりのdidSelectAnnotationView:使用する必要があり、これを交換してみてください。これで

[self mapView:self.mapsView didSelectAnnotationView:annotationView]; 

を:注釈が選択されている場合

[self.mapsView selectAnnotation:point animated:YES]; 

didSelectAnnotationView:はあなたのMapViewによって呼び出されます。

+0

これは機能します。どうもありがとう! – highsun16

関連する問題