1

私はストーリーボードを使用するIOS5のiPhoneアプリに取り組んでいます。注釈の吹き出しで mapkit を使用するストーリーボードを作成しました。ストーリーボード エディターを使用して、ボタンのプッシュ セグエとテーブル行の選択を結び付けることができました。MapKit でカスタム コールアウトを使用した経験がありますが、ストーリーボードで定義されているビュー コントローラーをコールアウトからプッシュする方法がわかりません。を使用するつもりでしたが[self.navigationController pushViewController:abc animated:YES]、これを行うには、ストーリーボードからビュー コントローラーを取得するか、新しいビュー コントローラーを初期化する必要があります。NIB 名がないため、NIB 名にアクセスできません。ViewControllerストーリーボードで定義されたのインスタンスにアクセスするにはどうすればよいですか? ストーリーボード エディターを使用して PUSH Seques をカスタム マップ アノテーション コールアウトに接続する方法はありますか?

前もって感謝します。

4

2 に答える 2

1

ボタンを追加し、View Controller にコントロールドラッグすることで実行しました。その後、ボタンの隠しプロパティを使用して、ボタンが非表示であることを確認します。マップビューを別のビューコントローラーにドラッグするだけでは制御できません。そのためにはボタンを使用する必要があります。セグエに識別子を必ず付けてください。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control {
    [self performSegueWithIdentifier:@"detailSegue" sender:view];
}
于 2012-05-09T13:39:09.963 に答える
1

1 つのビュー コントローラーから別のビュー コントローラーにコントロールをドラッグすることによって、プログラムで実行されるビュー コントローラー間にセグエを作成できます。次に、MKMapViewDelegateメソッドで- (void)mapView:annotationView:calloutAccessoryControlTapped:は、ストーリーボードでセグエに識別子を与えている限り、プログラムでセグエを実行できます。

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
{
    // I've chosen to pass the annotation view as the sender here.
    // I'm assuming this view controller will be configured with data that
    // is backing the annotation view. By passing the view, you will be able
    // to inspect it and it's backing annotation in `prepareForSegue:sender:`
    [self performSegueWithIdentifier:@"ShowSomeViewController" sender:view];
}
于 2012-01-22T05:49:39.063 に答える