(アーカイブ)【SwiftUI】環境変数presentationModeについて

本記事で使用しているPresentationModeはiOS15以降では非推奨となっています。
最新の情報はこちらの記事を御覧ください。

環境変数presentationModeについて解説します。

スポンサーリンク

環境

この記事の情報は次のバージョンで動作確認しています。

【Xcode】12.2
【Swift】5.3.1
【iOS】14.2
【macOS】Catalina バージョン 10.15.7
スポンサーリンク

概要

環境変数presentationModeは、現在のViewに紐づくPresentationMode構造体への参照値(Binding)を持ちます。
PresentationMode構造体は次の2つの機能を実現します。

  • 現在のViewが他のViewから呼ばれているかどうかを示すフラグ。
  • 現在のViewを閉じる処理。
スポンサーリンク

使用方法

presentationModeの取得

@Environmentプロパティラッパーを使って、取得します。

取得したpresentationModeから、PresentationMode構造体に直接アクセスするには、wrappedValueを使用します。

PresentationMode構造体の使い方

プロパティisPresentedで他のViewから呼ばれたているかどうか判定可能です。

dismiss()ファンクションで、現在のViewを閉じます。
他のViewから呼ばれたViewでは無い場合は、何もおきません。

スポンサーリンク

使用例

環境変数presentationModeを参照し、他のViewから呼ばれていない(TopView)の場合は、自Viewを再度開く処理を実装。
呼び出されたViewでは、dismiss()ファンクションで画面を閉じる処理を実装します。

presentationModeの使用例

スポンサーリンク

あわせて読みたい記事

(アーカイブ)【SwiftUI】NavigationViewでの画面遷移
(2020/11/8 更新) 本記事で使用しているNavigationViewはiOS16以降では非推奨となっています。 最新の情報はこちらの記事を御覧ください。 NavigationView配下での画面遷移について解説します。
【SwiftUI】シートの使い方(sheet)
(2021/10/10 更新) Viewをモーダル表示にするシート(sheet)の使い方を解説します。 完全な全画面表示ではなく、元の画面の上にカードをのせたようなイメージで、遷移元の画面が少し見えるのがシートの特徴です。 画面全体を覆うモ...