【发布时间】:2019-08-31 01:02:53
【问题描述】:
我试图在 SwiftUI 中重现 UISplitViewController 的行为,特别是在 iPad 上。此 SwiftUI 代码的行为与我预期的不同:
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
Text("Master")
}.navigationBarItems(trailing: NavigationLink(destination: DetailView()) {
Image(systemName: "plus")
}).navigationBarTitle("Master List")
Text("")
}
}
}
struct DetailView: View {
var body: some View {
Text("Detail")
}
}
在 iPhone 设备上,它可以按预期工作。点击导航栏中的加号按钮会将DetailView 推送到导航堆栈,一切似乎都很好。
在 iPad 上,加号将详细视图推送到 master 视图中的导航堆栈上。即使我明确告诉它链接应该使用isDetailLink(true) 定位详细信息,它也会这样做。
错误还是我以错误的方式处理这个问题?
(这留下了一个次要问题,即如何避免评估目标View,直到它被点击。当目标视图接受参数(例如空模型)并创建该模型时,这是可取的效果(例如,将对象插入托管对象上下文)。This blog 很好地解释了这种情况。)
【问题讨论】:
标签: swiftui