0

マップ ビューに複数のピンがある単純なマップ アプリがあります。私の意図は、ピンをタップし、アクセサリ ビューで吹き出しを表示し、そのピン/場所の詳細を編集できる詳細ビュー コントローラーにプッシュすることです。これはすべて正常に機能しますが、詳細ビューコントローラーをポップすると、マップビューの吹き出しがまだ残っていますが、古い未編集の値が残っています。詳細ビュー コントローラーがポップされたら、吹き出しビューを更新/更新するにはどうすればよいですか?

単純なデータベースで Core Data を使用しています。controllerdidchangecontent、Map View Controller Will Display メソッドなどを使用してみましたが、主な問題は、追加/更新/削除されたオブジェクトと、対応するコールアウト/選択されたピンを特定することです。

助けていただければ幸いです...

4

2 に答える 2

0

吹き出し情報を更新する唯一の方法は、吹き出しのサブビューを直接操作することでした。

吹き出しビューは、注釈ビューの最初のサブビューです。

次の例では、サブタイトルを更新します。タイトル ラベルは 6 番目で、サブタイトルは吹き出しの 7 番目のサブビューです。

if (myAnnotationView.subviews.count > 0)
    ((UILabel*)[((UIView*)[myAnnotationView.subviews objectAtIndex:0]).subviews objectAtIndex:7]).text = @"Some example";
于 2012-11-06T13:15:19.233 に答える
0

答えが見つかったかどうかはわかりませんが、それを行う方法は、MKAnnotation クラスを拡張し、カスタム アノテーションを作成して、目印の作成中にそれらを渡すことです。後で MKAnnotationView の注釈プロパティから取得できます。

ここで良い実装を参照してください

http://www.slideshare.net/360conferences/getting-directional-with-mapkit-everything-you-need-to-get-started-with-the-new-mapping-framework

于 2011-03-12T16:51:59.480 に答える