MKAnnotation
プロトコルに準拠したアノテーションクラスがあります。このクラスには、座標、タイトル、サブタイトルを設定するinitメソッドがあります。
これらの注釈の配列を作成し、を使用して通常の方法でMKMapViewに追加しますaddAnnotations:annotationArray
。
次に、MKMapViewDelegageメソッド- (MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation
で、カスタムピンカラーanimatesDrop、canShowCalloutを使用してMKPinAnnotationViewを作成します。コールアウトには、タイプがのUIButtonがありますUIButtonTypeDetailDisclosure
。
アプリケーションを実行してマップ上のピンをクリックすると、期待どおりの結果が得られます。これは、タイトル、サブタイトル、およびdetailDisclosureボタンのあるコールアウトです。
私が理解しようとしているのは[self.navigationController pushViewController:detailsController animated:YES];
、ユーザーが詳細開示ボタンをクリックしたときに、詳細ページ()にデータを渡す方法です。initメソッドにパラメーターを追加してアノテーションクラスを変更しようとしましたが、- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
メソッドでそのパラメーターにアクセスできません。そこからタイトルとサブタイトルにアクセスするには、このようなことをする必要があるよう[view.annotation title]
です。
ここで何をすべきかわかりません。これを行う方法についてのドキュメントも見つからないようです...
また。オブジェクトを詳細ビューコントローラに渡したい。オブジェクトには、詳細ページで使用されるさまざまなデータが含まれます。
PS-ARC付きのXcode4.2を使用しています。