- 前回はハーフモーダルを試してみたが、今回はフルモーダルにチャレンジ
フルモーダルを表示する場合は、fullScreenCoveモディファイアを使用する。
使い方はsheetモディファイアと同じ。
//
// ContentView.swift
// Test
//
// Created by yuki on 2023/09/17.
//
import SwiftUI
struct ContentView: View {
@State var modalFlg = false
var body: some View {
Button {
// ボタンタップごとに表示非表示の切り替えを行う。
modalFlg.toggle()
} label: {
Text("初期画面")
}
.fullScreenCover(isPresented: $modalFlg, content: {
halfView()
})
}
}
struct halfView: View {
// 現在のプレゼンテーションを破棄
@Environment(\.dismiss) private var dm
var body: some View {
NavigationView {
ZStack{
Color.red
.ignoresSafeArea()
Button {
dm()
} label: {
Text("ハーフモーダル")
.foregroundColor(.white)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
結果はこの通り、
閉じる場合はボタンタップ(Dismiss)を行う。(スワイプで閉じることはできない)