- 前回の画面遷移はナビゲーション遷移を行ったが、今回はモーダル遷移をやってみる。モーダル遷移にはフルモーダルとハーフモーダルの2種類ある。
まずはハーフモーダル、
ハーフモーダルを表示する場合は、sheetモディファイアを利用します。
sheetのisPresentがtrueの場合に、halfViewが表示されると言う仕組みになります。
//
// 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("初期画面")
}
.sheet(isPresented: $modalFlg) {
halfView()
}
}
}
struct halfView: View {
// 現在のプレゼンテーションを破棄
@Environment(\.dismiss) private var dm
var body: some View {
NavigationView {
ZStack{
Button {
dm()
} label: {
Text("ハーフモーダル")
.foregroundColor(.black)
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
初期画面のボタンをタップすると、以下の通りになります。
スワイプとボタンタップでモーダルを閉じることができます。