2017-04-25 6 views
0

ビューコントローラが3つあると仮定します。A,B、およびCです。 Aは、Bを提示したルートビューコントローラであり、Bは、Cを順番に提示しています。 CからAへのカスタム巻き戻しセグを、Bが表示されないようにするにはどうすればよいですか?複数のビューコントローラを巻き戻すためのカスタムUIStoryboardSegue

A - B - C 

UIStoryboardSegueは、そのソース・ビュー・コントローラならびにその宛先ビューコントローラへの参照を持っているが、何の間でビューコントローラに関する(この例でB)? Cに必要なアニメーションは何でも実行できますが、どのようにしてBに影響するかはわかりません。

目標は、左から来るAを有するので、両方のソースと宛先は水平隣同士にスワイプしながら右へルート(BC)が、全てを却下するだけです。 Bは、アニメーションのどの時点でも表示されるべきではありません。

私の例では、2つのビューのみを却下していますが、任意の数のビューに適用される解決策を見つけることを願っています。さらに、UINavigationControllerを使用してこれを解決することに興味はありません。私は単にBを却下しようとしましたが、実際にはCも却下されますが、アニメーション中はまだBCの両方が表示されます。

+0

あなたはアンワインドSeguesを見てみることができます。次に、[iOSストーリーボードでの巻き戻し]の例を示します(https://spin.atomicobject.com/2014/10/25/ios-unwind-segues/)。 – aNa12

+0

質問はゆるやかなセグのことです。 –

+0

この例のように試してみましたか? – aNa12

答えて

0

あなたは以下のように、あなたのコントローラをdissmissことができます。

self.presentingViewController?.presentingViewController?.dismiss(animated: true, completion: nil) // you need to track viewcontroller's stack hierarchy 
+0

私は途中で真っ裸に見せないでアニメーションは、質問の最後の文に記載されています。 –

+0

あなたは最初に試しましたか? – KKRocks

+0

また、質問で述べたように: "私は単にCも却下しますが、アニメーション中にBとCの両方を見ることができます。" –

関連する問題