2012-04-27 15 views
1

Mapkitの使い方は、私のシナリオです:ユーザーがマップ上のプッシュピンの1つを選択し、そのピンに関連付けられたコールアウトを選択すると、選択に関連する情報を表示する別のViewControllerに送信します。 destinationViewControllerのためのデータを設定するマップ上でどのピンが選択されているかを確認する

は、私が

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

を使用していますこれは働いているが、私は注釈が選択されていることを確認していない問題があります。 次のコードは私の問題を示している - のコードは動作しますが、私はそれが難しいの「objectAtIndex:0」コード化されている代わりに、objectAtIndexの:どのように私はどのピン知っている、prepareForSegueで

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

を「彼らは選択されたものは何でもピン」彼らは選んだ?あなたのコードの残りの部分を知らない

+0

私は、「送信者が」ピン/コールアウトが選択された異なる進値によってであることがわかりますにブレークポイントを置けば、私は注釈にその値を関連し、インデックスとしてそれを使用するために適切なコードを必要とします私の配列のために。 – user1278974

+0

そして、これに先立って、私はと呼ばれている[自己performSegueWithIdentifier:「私のイメージ」@送信者:制御];それは私が利用する必要があるコントロール値ですが、私はそれを配列のインデックスにどのように関連づけていますか? – user1278974

答えて

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]]; 
    } 
} 
+1

ありがとうございます。これは私のコードのほんの少しの微調整で機能しました。 MYAnnotation * localannotations = [(MKPinAnnotationView *)[送信元スーパー]スーパー]アノテーション]。 – user1278974

関連する問題