さまざまな建物オブジェクト (自分のクラス) を含むマップビューを持つアプリがあります。各建物にはすべてうまく機能する注釈プロパティがあり、ユーザーは目的の建物のテーブルを検索し、ボタンをタップすると、関連する注釈が表示されます。
これで、DetailViewController にセグエをプッシュするメソッド (showDetails) を呼び出すアノテーションに吹き出しボタンがありますが、問題は、この DetailViewController に適切なビルドを取得することです。すべての建物はデータ コントローラーの配列に格納されており、可能であればそこから 1 つを読み込みたいと考えています。
これまでのところ、controlWasTapped メソッドを使用してきました。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
for (Building* theBuilding in self.datacontroller.masterArray){
if(theBuilding.name isEqualToString:view.annotation.title){
NSLog(@"theBuilding's name %@", theBuilding.name);
}
}
これは正常に機能し、正しい建物を返しますが、これを DetailViewController に取得する方法について困惑しています。PrepareForSegue メソッドがありますが、正しい建物を取得するにはどうすればよいですか? また、DidSelectAnnotation を取得したので、showDetails メソッドが必要ですか?
建物タイプの引数を取るように showDetails メソッドを変更してから、prepareForSegue で建物の詳細を提供できると考えていましたが、もっと良い方法があれば知りたいです。
では、最適なプランは何ですか?どうもありがとう