Dismissing a View Controller with an Unwind Segue

4679 ワード

https://developer.apple.com/documentation/uikit/resource_management/dismissing_a_view_controller_with_an_unwind_segue
"Configure an unwind segue in your storyboard file that dynamically chooses the most appropriate view controller to display next."
シーケンスイメージボードファイルにリファレンスクリップを設定し、次に表示する最適なビューコントローラを動的に選択します.

Overview


ビューコントローラの無効化を処理するには、UNとINセグメントを作成する必要があります.ビューコントローラとは異なり、[非表示と非表示](Hide and Hide)セクションでは、トランジション結果の特定のターゲットではなく、現在のビューコントローラを閉じることができます.逆に、UIKitは、実行時にプログラム的に無人機のターゲットを決定する.UIKitは、運転時にUnwildSeggの目標を決定する.したがって、ビューコントローラの階層構造を設定する方法は制限されません.次の図に示すように、2つのビューコントローラのスキームを考慮できます.複雑な論理を追加して、次のビューコントローラを決定できます.しかし、これらのソリューションはうまく拡張できません.逆に、UIKitは、任意の数のビューコントローラに最小限のワークロードで拡張できる簡単なプログラミングソリューションを提供する.

Define an Unwind Action on a Parent View Controller


非表示セッション動作方法の存在は、ビューコントローラが非表示セッションの潜在的な宛先であることを示すUIKitである.シーケンスイメージボードで非表示セッションを設定する前に、このアクションメソッドを少なくとも1つのビューコントローラに追加する必要があります.ビューコントローラが非表示になっていない場合、Xcodeは非表示クリップの作成をブロックします.この動作方法の形式は次のとおりです.
@IBAction func myUnwindAction(unwindSegue: UIStoryboardSegue)
動作方法に特別なことをする必要はありません.このメソッドは、現在のビューコントローラを閉じるのに十分です.ただし、この方法を使用して、アンインストール中に関連する操作を実行することもできます.たとえば、無効なビューコントローラから親ビューコントローラにデータを転送する必要がある場合があります(無効なビューコントローラを要求されました).必要に応じて、UIStoryboardSegueオブジェクトを使用して、ビューコントローラの開始および終了を回収することができる.

Connect a Triggering Object to the Exit Control


シーケンスイメージボードのトリガオブジェクトを右クリックし、ビューコントローラシーンの上部にあるExitコントロールにドラッグすると、非表示セグメントを作成できます.ビューコントローラのコントロールまたはジェスチャーレコーダなどの動作設計モードをサポートするオブジェクトからセグメントを作成できます.

オブジェクトがExitコントロールに接続されている場合、UIKitには既知の動作方法がリストされます.アンインストールセッションを完了するアクション方法を選択してください.動作方法のみを選択し、特定のビューコントローラは選択しません.オフにして表示するには、親ビューコントローラが選択した方法を実装する必要があります.
ユーザが動作を無効にしようとすると、UIKitは、現在のビューコントローラ階層において、指定された動作方法を実施するビューコントローラにナビゲートする.最も近いビューコントローラに移動し、直系の親から開始します.次に、適切なターゲットが見つかるまで、プロセスナビゲーションビューコントローラの階層構造に従います.対応するメソッドデルが実装したビューコントローラが見つからない場合、アンインストールプロセスはこっそり失敗し、現在のビューコントローラは画面に残ります.

See Also


Storyboards


Customizing the Behavior of Segue-Based Presentations


プラグが発生すると、ビューコントローラ間でデータが転送されます.そして、プラグが発生したときにコードコンテンツで制御します.
https://developer.apple.com/documentation/uikit/resource_management/customizing_the_behavior_of_segue-based_presentations
https://velog.io/@panther222128/Customizing-the-Behavior-of-Segue-Based-Presentations

UIStoryboard


インタフェースビルダーシーケンスイメージボードリソースファイルに表示される設計タイムビューコントローラグラフィックのパッケージ.
https://developer.apple.com/documentation/uikit/uistoryboard
https://velog.io/@panther222128/UIStoryboard

UIStoryboardSegue


2つのビューコントローラ間でビジュアル切り替えを行うオブジェクトを準備します.
https://developer.apple.com/documentation/uikit/uistoryboardsegue
https://velog.io/@panther222128/UIStoryboardSegue

UIStoryboardUnwindSegueSource


UNとIND SEGに関する情報のパッケージです.
https://developer.apple.com/documentation/uikit/uistoryboardunwindseguesource
https://velog.io/@panther222128/UIStoryboardUnwindSegueSource