让.sheet()工作时遇到很多麻烦,我开始怀疑为什么要使用.sheet()。 .sheet()和.popover()相对于例如更改zIndex?
我的应用程序中有一个搜索窗口,该窗口在一个或两个Beta之前会愉快地弹出。现在它会弹出一次。孤立时,我使用的代码很愉快,但在我的应用程序中却没有。我尝试同时使用isPresented和item形式,但均未成功。附件中的代码可以工作,但是如果我想知道任何错误。它比我在试图找到问题的稻草上掌握的要复杂得多。
struct ContentView : View {
@State var count = 0
@State var dismisses = 0
var body: some View {
VStack {
Spacer()
ShowButton(count: $count, dismisses: $dismisses)
Spacer()
Text("Shows: \(count), Dismisses:\(dismisses)")
}
}
}
struct ShowButton: View {
@State var show = false
@Binding var count: Int
@Binding var dismisses: Int
var body: some View {
Button(
action: { self.count += 1; self.show = true },
label: { Text("Show sheet") }
)
.sheet(
isPresented: $show,
onDismiss: { self.dismisses += 1 },
content: { Show(text: "Test #\(self.count)") }
)
}
}
struct Show: View {
let text: String
@Environment(\.presentationMode) var mode: Binding<PresentationMode>
var body: some View {
VStack {
Text(text)
Button(
action: {
self.mode.value.dismiss()
},
label: { Text("Dismiss") }
)
}
}
}
此代码可以正常工作,我的应用中类似的代码可以工作一次。
sheet()/ popover()是否有好的替代品?