gpt4 book ai didi

SwiftUI ToolbarItem 不显示来自 NavigationLink 的 View

转载 作者:行者123 更新时间:2023-12-03 09:45:48 26 4
gpt4 key购买 nike

我不知道这是一个错误还是我在这里做错了什么。我在导航栏上添加了一个新按钮,它将呈现一个新 View 。

struct MyView: View {

@ObservedObject var viewModel = MyViewModel()

var body: some View {
List(viewModel.data, id: \.name) { data in
NavigationLink(destination: MyDetailView(data: data.name)) {
Text(data.name)
}
}
.listStyle(InsetGroupedListStyle())
.edgesIgnoringSafeArea(.all)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
NavigationLink(destination: MyDetailView()) {
Text("New Element")
}
}
}
}
}
这正在最新的 iOS 14 beta (beta 6) 和 Xcode 12 (beta 6) 上进行测试。据我所知,导航链接在列表中可以很好地呈现新 View ,但在工具栏中,如图所示,情况并非如此。工具栏上的按钮可见且处于事件状态,但不会触发显示新 View 。

最佳答案

NavigationLink应该在里面 NavigationView .工具栏不在 NavigationView ,把按钮放进去。
所以假设你在 parent 的某个地方

NavigationView {
MyView()
}
这是一个解决方案:
struct MyView: View {

@ObservedObject var viewModel = MyViewModel()
@State private var showNew = false

var body: some View {
List(viewModel.data, id: \.name) { data in
NavigationLink(destination: MyDetailView(data: data.name)) {
Text(data.name)
}
}
.listStyle(InsetGroupedListStyle())
.background(
NavigationLink(destination: MyDetailView(), isActive: $showNew) {
EmptyView()
}
)
.edgesIgnoringSafeArea(.all)
.toolbar {
ToolbarItem(placement: .navigationBarTrailing) {
Button("New Element") {
self.showNew = true
}
}
}
}
}

关于SwiftUI ToolbarItem 不显示来自 NavigationLink 的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63602263/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com