ここでストーリーボードに戻り、ViewControllerCを選択し、ビューコントローラからExit proxyへドラッグします。
ポップアップで、巻き戻しメソッドを選択します。
最後に、巻き戻しセグに識別子を指定します。
さて、あとはボタンが押されたときに unwind segue をトリガーすることだけです。 🥂
Some technical details
この記事をまとめる前に、ランタイムが隠れて何をしているかを見ておきたいと思います。
各停留所で、ランタイムはまた、ビューコントローラが任意の子を持っているかどうかをチェックする必要があり、それらの 1 つに unwind メソッドが含まれている可能性があるからです。 これは allowedChildrenForUnwinding(from:) メソッドを呼び出すことで行われ、ビューコントローラーの子である UIViewController の配列を返します。
しかしながら、私たちはそこから来たばかりなので、ソース ビュー コントローラを含む分岐をチェックしたくありません。 これは、childContaining(_:) メソッドを呼び出すことで回避できます。これは、巻き戻しセグエのソースを含む子ビューコントローラを返します。
返された配列に子が含まれている場合、上記の処理はその子にも実行されます。
返された配列が空の場合、canPerformUnwindSegueAction(_:from:sender:) メソッドが呼び出され、ビュー コントローラに unwind メソッドがあるかどうかをチェックします。 そうでない場合は、ビューコントローラーの階層を 1 つ上がって、同じ手順を実行します。
おわりに
unwind segues に関するこの短いチュートリアルを楽しんでいただけたなら、時間を取って読んでいただきありがとうございます。