2

MKMap APIを使用してデータベーステーブルIDを統合しようとしているので、ボタンの詳細開示をクリックして、詳細情報を含む別のページにユーザーを送信できます。私はAppleサイトのMKMapKitのいたるところで、これに役立つプロパティまたはメソッドを見つけ、いくつかのチュートリアルを調べましたが、答えはありませんでした。

ID を字幕コンテキストにアタッチしようとしたので、MKAnnotationView で ID を取得して MKPinAnnotationView を作成し、ボタンを rightCalloutAccessoryView に追加しました。エラーが発生し、動作したくありません。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation{  

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"mkpin"];  
annView.animatesDrop = YES;  
annView.canShowCallout = YES;  

UIButton *disclosureButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];  
annView.rightCalloutAccessoryView = disclosureButton;  

return annView;  

}

マップ上の個々のピンにこの手法を使用しましたが、うまくいくように見えましたが、ID は必要ありませんでした...

注釈のサブタイトルを取得しようとすると、アプリが強制終了されます。(id) 注釈が整数であることは知っていますが、この情報を操作する方法がわかりません。上記のこの関数は、私のコードの後に​​呼び出されると思います:

[mapView addAnnotations:markers]; //ここで、markers はタイトル、サブタイトル別名 ID の配列です

どんな助けでも大歓迎です。

4

1 に答える 1

2

このsubtitleプロパティは、データベース ID ではなくサブタイトル用です。そのように悪用しても何の得にもなりません。たとえそれを機能させることができたとしても、それは恐ろしいアプローチです。

あなたがしなければならないことは、ID を格納するための適切なプロパティを注釈クラスに与えることだけです。アノテーションが渡されると、アノテーション クラスにキャストすることでそこからアクセスできます。annotation他のデリゲート メソッドで注釈ビューが渡されると、そのプロパティを介して注釈にアクセスできます。

于 2011-03-03T22:04:34.753 に答える