私はMapViewを使用していて、30のピン位置が配置されており、すべてがうまく機能しています。rightCalloutAccessoryViewを使用してコールアウトにボタンを追加しました。ボタンコードは次のとおりです。
UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
pinView.rightCalloutAccessoryView = rightButton;
[rightButton addTarget:self action:@selector(rightButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
return pinView;
}
これは正常に機能し、「rightButtonPressed」メソッドを呼び出します。そのメソッドの実装は次のとおりです。
-(IBAction) rightButtonPressed:(id)sender
{
NSLog(@"button clicked");
MapViewController *thisMap = (MapViewController *)[[UIApplication sharedApplication] delegate];
DetailViewController *dvc = [[DetailViewController alloc]initWithNibName:@"DetailViewController" bundle:nil];
[thisMap switchViews:self.view toView:dvc.view];
}
したがって、ご覧のとおり、30ピンのコールアウトすべてのボタンに触れると、同じビュー(DetailViewController)に移動します。各ボタンに独自のビューを切り替えてもらいたい(ここに「DirectionsToHere」や「DirectionsFromHere」などと店舗の住所と名前を配置します)。
30個のビューを作成し、各ピンに適用できる30個の異なるメソッドを作成できることはわかっていますが、配列を処理するより簡潔なコードが必要であることはわかっています。
可能性のある特定の配列は、DetailViewControllerのUILabelで呼び出される可能性があるため、適切な情報をロードするだけでなく、適切な場所への道順も示します。
これは大きな質問かもしれません。私はいくつかのチュートリアルを探しましたが、質問に正確に答えるものは見つかりませんでした。誰かが私を始めることができれば(または私を正しい方向に向けることさえできれば)、私は完全に感謝するでしょう。