0

ボタンがView Controllerへのモーダル呼び出しを行うStoryboardsを使用して、どのボタンがView Controllerに私を送ったかを特定できるかどうかは誰にも分かりますか?

ジャンプ先のボタンとビュー コントローラーが複数ありますが、1 つのビュー コントローラー コード ベースを使用してすべてのモーダル ジャンプを処理したいと考えています。どのボタンが押されたかを理解し、それに基づいてアクションを実行する 1 つの viewcontroller.m ファイルが必要です。「セグエ」操作全体がどのように機能するかについての明確な説明はないようです。それはすべて少しずつです。

performSegueWithIdentifierボタンを IBAction にアタッチしてメソッドを使用しようとしました。モーダルを使用して定義された IBActions は必要ないので、ばかげているようです。私もそのルートに行きましたprepareForSegueが、ナビゲーションコントローラーが必要です(これは必要ないと思います)。

人々に調査を強制するのは良いことだと思いますが、私はこれに 16 時間かかり、すべてのリンクをたどって役に立たなかったのです。これには、私が働いていた機能的なセグエの束を吹き飛ばした nag コントローラーの挿入が含まれていました。

ボタンを押す前に、ある VC から別の VC に変数を渡す簡単な方法はありますか? そのような汚いものが必要かもしれませんが、モーダルボタンで必要なセグエを参照し、その情報だけを新しい UIViewController の「ビューがロードされました」に渡すことができると便利です。

4

1 に答える 1

0

メソッドprepareForSegue:は必要なものであり、モーダル スタイルのセグエを使用する場合、ナビゲーション コントローラーは必要ありません。UIViewController class referenceから、それが行うことは次のとおりです。

セグエが実行されようとしていることをView Controllerに通知します。

ストーリーボードにセグエ識別子が設定されていることを確認してください。たとえば、下のスクリーンショットでは、PushModalViewController として設定しています。

ここに画像の説明を入力

次に、元のビュー コントローラーでprepareForSegueメソッドを使用して、宛先ビュー コントローラーのプロパティを設定します。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"PushModalViewController"]) {
        TargetViewController *targetViewController = (TargetViewController *)segue.destinationViewController;
        //set the property of the target view controller here
    }
}
于 2013-07-11T13:41:40.960 に答える