2014-01-14 10 views
33

私は、カスタムUIStoryboardSegueとカスタムUIViewcontrollerトランジション(ios7で導入されたもの)の違いを調べようとしています。カスタムUIStoryboardSegueとUIViewControllerトランジションの違い

の両方の違いと異なるユースケースは何ですか?限り、私は彼らが両方とも新しいコントローラへのカスタム動作に使用されていることがわかります。

おそらくUIViewcontrollerトランジションは、表示されているコントローラのほうが多く使用されていますが、一部は解消されますが、セグは完全な動きであり、必ずしもバックではありませんか?

Custom Segues
UIViewControllerTransitioningDelegate Protocol Reference

+0

セグエは、二つのビューコントローラとの間(Aを閉じ、Bを示す)アクションを定義し、ビューコントローラの遷移は、ビューコントローラが表示されるか却下方法について説明一方。 – x4snowman

+0

Segueに特定の方向があり、View Controllerトランジションにプレゼンテーションと提示されたView Controllerがなく、1つまたは複数のView Controllerがアニメーション化されているとしますか?または[VC1 presentModal:XXX]は、それが定義されたデフォルトのトランジション(プッシュ、モーダル)とのV1からV2を提示するための便利な方法である、あなたはドン」:私は何を意味 – StuartM

+0

はsegue'は、このような[XXX VC1プッシュ]としてアクションをカプセル化し 'ですそのようなコードを書く必要はありませんが、[self performSegueWithIdentifier:xxx]を呼び出すだけです。私の意見では、トランジェントデリゲートを使用すると、アニメーション効果をカスタム化することができます。 – x4snowman

答えて

0

あなたはストーリーボードseguesを使用して、カスタムの移行が必要な場合は、カスタムUIStoryboardSegueを使用します。しかし、新しいView Controllerを表示するために通常のUIViewControllerメソッドを使用している場合は、カスタムUIViewControllerのトランジションを使用します。どちらの場合も、以前のビューコントローラは存在しており、必要に応じて戻ることができます。これは、新しいView Controllerを起動するためにどのメソッドを使用するかによって異なります。

+2

これは間違いなく、UIViewController Transitioning with seguesを使用することができるので、これが正しいかどうかはわかりません。私はいくつかのビューコントローラのトランジションを既にセットアップしており、カスタムトランジションでさえそれらと一緒にセグを使用しています。しかし、これらとユースケースの違いはわかりません。 – StuartM

+0

そうかもしれない。しかし、実際にセグを使用するときは、カスタムの 'UIStoryboardSegue'しか使用できないと思います。 – Gavin

+0

@StuartM少なくとも1つのケースがあります。ここでは、UIViewControllerTransitioningDelegateをストーリーボードのセグに使用できません。複数の子を持つカスタムコンテナビューコントローラがあり、カスタムセグを1つの子から別の子に移してコンテナコントローラで '-addChildViewController:'を適切に実行したい場合、標準のプレゼンテーション遷移は機能しません子育てを処理しません。AFAICT、あなたは自分でこの子育てをしなければなりません。そして、カスタムセグは論理的な場所ですが、UIViewControllerTransitioningDelegateは使用されません。 – erikprice

3

カスタムSeguesはちょうどプレゼンテーションスタイルを定義するためのものではなく、彼らはまた、プレゼンテーションのスタイルと一緒にビューコントローラのカスタム階層を定義するために使用することができます - 別の何かをナビゲーションやタブバーのビューコントローラから。

のみプレゼンテーション用のカスタムセグエを使用しての問題は、開発者が実際に意図するところではない。また、ビューコントローラの階層を管理する責任があるということです。カスタムトランジションのAPIで

は、プレゼンテーションは、ビューコントローラが管理されている方法から分離されています。

+2

これは意味があります。カスタムセグを使用しているときに、カスタムセグまたは他の方法でビューコントローラをトリガする方法はありますか? – kolizz

関連する問題