2012-04-14 36 views
0

私のマップビューはすべての選択を除いて正常に動作しているようだ次のコードで表示されたとき、私はMapViewの注釈を設定しています:このシナリオではなぜselectAnnotationは機能しませんか?

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    MapAnnotation *pinpoint = [[MapAnnotation alloc] initWithTitle:@"Title" andCoordinate:loc]; 

    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(loc, 1500, 1500); 
    [self.mapView setRegion:region animated:true]; 
    [self.mapView addAnnotation:pinpoint]; 
    [self.mapView selectAnnotation:pinpoint animated:true]; //nothing happens!? 
} 

しかし、このコールバックで同じメソッドを呼び出した場合、それが正常に動作します:

- (void)mapView:(MKMapView *)mv didAddAnnotationViews:(NSArray *)views 
{ 
    MKAnnotationView *annotationView = [views objectAtIndex:0]; 
    id <MKAnnotation> mp = [annotationView annotation]; 
    [mv selectAnnotation:mp animated:YES]; 
} 

原因は何ですか。これはselectAnnotationを呼び出す適切な場所ではありませんか? viewForAnnotationが呼び出されるまで待つ必要がありますか?

+0

他の質問での私のソリューション::http://stackoverflow.com/a/13026353/736384

この人気の質問を参照してください –

答えて

関連する問題