当你浏览并打开确认对话框时。当你选择“是”,“否”或“取消”时,应用程序所在的页面将被取消,并带您回到前一页的表单。
我们也发现这种情况也发生在警报中。 这是一个非常简单的应用程序结构,顶级选项卡,然后是一个菜单,链接到子页面。
以下是该错误的快速演示:
我们编写了一个示例应用程序来演示此问题。如何在维护应用程序结构的同时防止这种情况发生?
我们也发现这种情况也发生在警报中。 这是一个非常简单的应用程序结构,顶级选项卡,然后是一个菜单,链接到子页面。
以下是该错误的快速演示:
![Bug演示](https://istack.dev59.com/jrNR7.gif)
import SwiftUI
@main
struct testApp: App {
var body: some Scene {
WindowGroup {
NavigationView {
TabView() {
Form {
NavigationLink(destination: SubPage()) {
Image(systemName: "clock")
Text("Sub Page")
}
// This is where more menu options would be
}
.tag(1)
.tabItem {
Image(systemName: "square.grid.2x2")
Text("Tab 1")
}
// This is where more tab pages would be
}
}
}
}
}
struct SubPage: View {
@State private var confirmDialogVisible = false
var body: some View {
VStack {
Button{
confirmDialogVisible = true
} label: {
Text("popup")
}
}
.confirmationDialog("Confirm?", isPresented: $confirmDialogVisible) {
Button("Yes") {
print("yes")
}
Button("No", role: .destructive) {
print("no")
}
}
}
}
我们正在使用 XCode 14.1,并在 iOS 16.1 上运行。