6

条件が配置された最初のビューにいくつかのビューがあるストーリーボードに取り組んでいます条件が満たされている場合は、ナビゲーションのみが発生する必要があります

このために私はカスタムセグエを使用しましたが、私の条件が満たされているかどうかに関係なく、新しいビューに移動します。

カスタムセグエクラスでメソッドを作成しました

- (void) perform{

    NSLog(@"source %@",self.sourceViewController);
    NSLog(@"dest %@",self.destinationViewController);

    UIViewController *sVC=self.sourceViewController;
    UIViewController *dVC=self.destinationViewController;

    [sVC.navigationController pushViewController:dVC animated:YES];


}

結果が1の場合に条件を設定したいので、それだけがナビゲートする必要があります。Woulprepareforsegueまたはinitwithsegueは私に助けを提供します

4

1 に答える 1

31

条件が真の場合にのみセグエを実行したいということですか?

その場合、コントロールセルまたはテーブルセルから直接セグエを作成する代わりに、トリガーレスセグエを作成します。トリガーレスセグエは、ソースとしてView Controllerを持ち、自動的に起動することはありません。代わりに、IBActionを含め、いつでもプログラムで起動できます。

トリガーレスセグエを作成するには、コントロールを開始し、シーンの下部にあるシーンドックにあるビューコントローラーアイコンを含むセグエをドラッグします。通常のように目的のシーンにドラッグし、セグエの種類を選択します。セグエを選択し、インスペクターでセグエ識別子を選択します。

実行時に、セグエを実行する場合は、-[UIViewController PerformSegueWithIdentifier:sender:]を呼び出します。nilを含め、送信者に必要なオブジェクトを渡すことができます。送信者があなたに役に立たない場合は、nilを渡します。

したがって、要約すると:

  • ビューコントローラから宛先シーンへのトリガーレスセグエを作成します
  • インスペクターでセグエの識別子を設定します
  • 実行時に、フォームコードで、セグエをトリガーするときに-[UIViewController PerformSegueWithIdentifier:sender:]を呼び出します。
于 2012-05-31T05:00:08.107 に答える