Skip to content

Instantly share code, notes, and snippets.

@kuotinyen
Last active August 29, 2021 10:41
Show Gist options
  • Save kuotinyen/35b734f64ffdd52104bb506d07f3fa4c to your computer and use it in GitHub Desktop.
Save kuotinyen/35b734f64ffdd52104bb506d07f3fa4c to your computer and use it in GitHub Desktop.
SheetDemoView.swift
import SwiftUI
struct SheetDemoView: View {
enum SheetMode: Identifiable {
case first
case second
var id: Int { hashValue }
}
@State private var firstText = "First"
@State private var secondText = "Second"
@State var sheetMode: SheetMode?
@State var previousSheetMode: SheetMode? = nil
var body: some View {
ZStack {
List {
Text(firstText)
.onTapGesture {
sheetMode = .first
previousSheetMode = .first
}
Text(secondText)
.onTapGesture {
sheetMode = .second
previousSheetMode = .second
}
}
}.sheet(item: $sheetMode, onDismiss: {
print("#### sheetMode: \(self.sheetMode)")
print("#### sheetMode not using as sheet binding item: \(previousSheetMode)")
guard let sheetMode = sheetMode else {
return
}
switch sheetMode {
case .first:
firstText = "First(presented)"
case .second:
secondText = "Second(presented)"
}
}, content: { sheetMode in
switch sheetMode {
case .first:
Text("First sheet")
case .second:
Text("Second sheet")
}
})
}
}
struct SheetDemoView_Previews: PreviewProvider {
static var previews: some View {
SheetDemoView()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment