为什么要使用工作表或弹出框?还有其他选择吗?

时间:2019-08-08 11:33:06

标签: popup swiftui

让.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()是否有好的替代品?

0 个答案:

没有答案