我有一个物品清单。单击一个应将新视图推送到导航堆栈。我注意到如果列表处于编辑模式,NavigationLink
不起作用。有办法控制吗?我需要它在编辑模式下工作。
List {
ForEach(segments) { segment in
NavigationLink(destination: EditSegmentView(segment: segment)) {
Text(segment.title)
}
}.onDelete(perform: onDelete)
.onMove(perform: onMove)
}.environment(\.editMode, $alwaysTrue)
答案 0 :(得分:0)
我现在可以按照自己的方式进行此操作。我使用了另外一个NavigationLink
和tag
自变量的selection
初始化程序。看来效果很好,但是我不知道这是否是该初始化程序的预期用途,因为文档非常稀疏。
@State var segmentSelection: Segment.ID? = nil
var body: some View {
NavigationView {
...
List {
ForEach(workout.segments) { segment in
NavigationLink(destination: EditSegmentView(segment: segment),
tag: segment.id,
selection: self.$segmentSelection) {
Text(segment.title)
}
.onTapGesture(perform: { self.segmentSelection = segment.id })
}.onDelete(perform: onDelete)
.onMove(perform: onMove)
}.environment(\.editMode, Binding.constant(.active))
...
}
}