Reputation: 299
Is it possible to present sheet in a child view in SwiftUI that already has a Sheet in its parent view ?
struct SheetTest: View {
@State var showFirstSheet = false
var body: some View {
VStack {
Text("FirstView")
.onTapGesture(count: 1, perform: {
showFirstSheet = true
})
SomeView()
}
.sheet(isPresented: $showFirstSheet, content: {
Text("firstsheet")
})
}
}
struct SomeView:View {
@State var showSecondSheet = false
var body: some View {
Text("SecondView")
.onTapGesture(count: 1, perform: {
showSecondSheet = true
})
.sheet(isPresented: $showSecondSheet, content: {
Text("secondsheet")
})
}
}
I am currently using Xcode 12 beta 3! and second sheet can't be presented this way! I have to present it in the parent view!
Upvotes: 3
Views: 1241
Reputation: 103
The solution is to be careful not to add .sheet
to the same view tree.
I'm using Xcode 12.1 (12A7403)
.
struct SheetTest: View {
@State var showFirstSheet = false
var body: some View {
VStack {
Text("FirstView")
.onTapGesture(count: 1, perform: {
showFirstSheet = true
})
.sheet(isPresented: $showFirstSheet, content: {
Text("firstsheet")
})
SomeView()
}
}
}
struct SomeView:View {
@State var showSecondSheet = false
var body: some View {
Text("SecondView")
.onTapGesture(count: 1, perform: {
showSecondSheet = true
})
.sheet(isPresented: $showSecondSheet, content: {
Text("secondsheet")
})
}
}
Upvotes: 4