ここでストーリーボードに戻り、ViewControllerCを選択し、ビューコントローラからExit proxyへドラッグします。

Exit proxy へのドラッグ

ポップアップで、巻き戻しメソッドを選択します。

巻き戻しメソッドを選択する

最後に、巻き戻しセグに識別子を指定します。

unwind segue は今識別子を持ち、unwind method に接続しています。

さて、あとはボタンが押されたときに unwind segue をトリガーすることだけです。 🥂

Unwind segue

Some technical details

この記事をまとめる前に、ランタイムが隠れて何をしているかを見ておきたいと思います。

各停留所で、ランタイムはまた、ビューコントローラが任意の子を持っているかどうかをチェックする必要があり、それらの 1 つに unwind メソッドが含まれている可能性があるからです。 これは allowedChildrenForUnwinding(from:) メソッドを呼び出すことで行われ、ビューコントローラーの子である UIViewController の配列を返します。

しかしながら、私たちはそこから来たばかりなので、ソース ビュー コントローラを含む分岐をチェックしたくありません。 これは、childContaining(_:) メソッドを呼び出すことで回避できます。これは、巻き戻しセグエのソースを含む子ビューコントローラを返します。

返された配列に子が含まれている場合、上記の処理はその子にも実行されます。

返された配列が空の場合、canPerformUnwindSegueAction(_:from:sender:) メソッドが呼び出され、ビュー コントローラに unwind メソッドがあるかどうかをチェックします。 そうでない場合は、ビューコントローラーの階層を 1 つ上がって、同じ手順を実行します。

おわりに

unwind segues に関するこの短いチュートリアルを楽しんでいただけたなら、時間を取って読んでいただきありがとうございます。

Articles

コメントを残す

メールアドレスが公開されることはありません。