2

ストーリーボードを備えた提示されたモーダルコントローラーにナビゲーションバー(ナビゲーションバーボタン付き)を追加したいだけです。

プログラムでXIBを使用すると、次のようになります。

SDMapController *mapController = [[SDMapController alloc] initWithNibName:@"SDMapController" bundle:nil];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mapController];

[self presentModalViewController:navigationController animated:YES];

しかし、ストーリーボードでそれを処理する方法がわかりません。-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)senderメソッドにコードを実装する必要があると思いますが、オブジェクトのdestinationControllerプロパティsegueは読み取り専用であるため、これを行う方法がわかりません。

何か案が ?

4

1 に答える 1

3

提示されたViewControllerにデータを渡したい場合にのみ、セグエの準備を実装する必要があります。それ以外の場合は、空のままにしておくことができます。View Controllerの提示は、InterfaceBuilderからのものです。ルートビューコントローラーを使用してナビゲーションコントローラーを追加し、ナビゲーションコントローラーにセグエ(Ctrl +ドラッグ)を作成します。セグエタイプをモーダルに設定し、IDを付けます。を呼び出すことにより、コードからこのセグエをトリガーできます[self perforSegueWithIdentiefier:@"MySegueID"];。ボタンまたはテーブルビューセルからセグエをドラッグした場合、このメソッドを呼び出さなくても、セグエをタップすると自動的にトリガーされます。私が言ったように、このprepareForSegue方法ではsegue.destinationViewController、提示されたナビゲーションコントローラーになります。topViewController必要に応じてアクセスし、データを渡すことができます。

于 2013-01-03T23:33:24.130 に答える