【发布时间】:2022-01-25 07:55:58
【问题描述】:
我正在尝试关闭 iPad 上主详细视图中的详细视图(例如,如果该项目在主视图中被删除并且需要将右侧空白)。
import SwiftUI
struct ContentView: View {
@State var selection: String?
var body: some View {
NavigationView {
List {
NavigationLink(tag: "item1", selection: $selection) {
DetailView(item: "Item 1", selection: $selection)
} label: {
Text("Item 1")
}
NavigationLink(tag: "item2", selection: $selection) {
DetailView(item: "Item 2", selection: $selection)
} label: {
Text("Item 2")
}
NavigationLink(tag: "item3", selection: $selection) {
DetailView(item: "Item 3", selection: $selection)
} label: {
Text("Item 3")
}
}
Text("Blank View")
}
}
}
struct DetailView: View {
let item: String
@Binding var selection: String?
@Environment(\.dismiss) var dismiss
var body: some View {
VStack {
Text("Detail for \(item)")
Button {
selection = nil
// dismiss()
} label: {
Text("Dismiss")
}
}
}
}
这是一个演示问题的示例。按下关闭时,它会取消 iPhone 上关闭细节控制器的选择。在 iPad 上,它将详细视图保留在那里,而不是返回到空白视图。
在通过取消选择(或使用环境关闭)关闭视图后,左侧的选择会按原样消失,但右侧的详细视图保持不变。这应该已经消失了,空白视图应该再次显示。
【问题讨论】:
标签: ios swift iphone ipad swiftui