1

Mapkit の使用方法、私のシナリオは次のとおりです。ユーザーがマップ上の画鋲の 1 つを選択し、そのピンに関連付けられたコールアウトを選択すると、ユーザーは別の ViewController に移動し、選択内容に関連する情報が表示されます。

destinationViewController のデータを設定するには、使用しています

   prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

これは機能していますが、どの注釈が選択されているかわからないという問題があります。次のコードは私の問題を示しています。コードは機能しますが、objectAtIndex:"whatever pin they selected" ではなく "objectAtIndex:0" にハードコーディングしています。

    [self.myImageViewController setAddressMessage:  [[self.annotations objectAtIndex:0] houseAddress]];        

prepareForSegue で、どのピンが選択されたかを知るにはどうすればよいですか?

4

1 に答える 1

4

コードの残りの部分がわからないため、これが機能するかどうかはわかりませんが、注釈ビューの吹き出しのボタンが押されたのと同様の状況で注釈を見つけた方法です。

-(void)buttonInCalloutWasTapped:(UIButton *)button {
    if ([[[[button superview] superview] class] isSubclassOfClass:[MKAnnotationView class]]) {
        MKAnnotation *annotation = [(MKPinAnnotationView *)[[button superview] superview] annotation];
        [self.myImageViewController setAddressMessage:  [annotation houseAddress]];
    }
}
于 2012-04-27T16:16:54.507 に答える