15から使えるdismissアクションを使って画面を破棄する#SwiftUI#iOSリルオッサ2022.04.30この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。15から使えるdismissアクションを使用することで楽に画面の破棄を行えるようになりました。13.3dismiss現在のプレゼンテーションを破棄するアクションです。}使用する際は、@Environmentを付けて使用します。この環境値を使用して、現在の環境のDismissActionインスタンスを取得することが出来ます。dismiss実際に画面を破棄する時は、dismiss()でインスタンスを呼び出して実行します。関数を呼び出すかのようにインスタンスを呼び出すことが出来ます。Viewを表示する為のプロパティisNextPresentedを準備して、ボタンを押すことでそのフラグを切り替えてフルスクリーンカバーで遷移先のViewを表示します。環境変数dismissを用意して、ボタンを押すとDismissアクションが実行されます。}}デモdismiss()するだけで画面破棄できるのでより直感的になりました。今回はフルスクリーンカバーでの遷移で試していますが、NavigationViewでの遷移でも同様に行えます。if分岐で表示を切り替える時は使用できないモーダルやNavigation遷移の際にはdismissを使用出来ましたが、下記のようにif分岐で表示を切り替える場合には、表示後のNextViewでdismiss()を実行しても画面が破棄されません。}}そもそもif分岐によるViewの切り替えなので、見栄え上は画面が切り替わっていても実際は遷移はしていない為です。Viewの表示状態を取得するdismissは現在表示されていないViewには影響を与えないので、これまでは特にViewの表示状態については特に気にしていませんでした。Viewの表示状態に応じて何らかの処理を行いたい場合もあると思います。その場合はisPresentedを使用して現在Viewが表示されているかどうかを取得することが出来ます。13.0–15.4となっております。このpresentationModeが今回dismissに切り替わったことでより直感的になったと私は感じました。これからもSwiftUIの成長に期待していきたいですね。@StateObject。