SwiftUIでシートを表示し、プッシュ遷移後にシートを閉じる
SwiftUIでシートを表示し、プッシュ遷移後にシートを閉じる方法です。 遷移後のシートでもisPresentedの情報を保持するのがポイントです。

ContentView.swift
import SwiftUI
struct ContentView: View {
@State var showingSheet : Bool = false
var body: some View {
Button(
action: { showingSheet = true },
label: {
Text("ShowSheet")
})
.sheet(isPresented: $showingSheet){
FirstSheet(showingSheet: $showingSheet)
}
}
}
struct FirstSheet: View {
@Binding var showingSheet : Bool
var body: some View {
NavigationView {
NavigationLink(
destination: SecondSheet(showingSheet: $showingSheet),
label: {
Text("Go to SecondSheet")
}
)
.navigationTitle("FirstSheet")
}
}
}
struct SecondSheet: View {
@Binding var showingSheet : Bool
var body: some View {
VStack {
Button(action: {
showingSheet = false
} ){
Text("Close Sheet")
}
}.navigationBarTitle("SecondSheet")
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
