【发布时间】:2020-05-24 15:39:50
【问题描述】:
我有一个带有 NavigationLinks 的列表。
List {
ForEach(items, id: \.id) { item in
NavigationLink(destination: ItemView(), tag: item.id, selection: self.$viewModel.selectedItemId) {
Text("Some text")
}
}
.onDelete(perform: delete)
}
.id(UUID())
还有一个对应的 ViewModel 存储了选中项的 id。
class ViewModel: ObservableObject {
@Published var selectedItemId: String? {
didSet {
if let itemId = selectedItemId {
...
}
}
}
...
}
问题是当我使用NavigationLink(destination:tag:selection:) 时,过渡动画消失了——子视图立即弹出。当我使用NavigationLink(destination:) 时,它可以正常工作,但我无法使用它,因为我需要在选择 NavigationLink 时执行一些操作。
为什么过渡动画消失了?这是NavigationLink(destination:tag:selection:) 的问题吗?
【问题讨论】:
标签: ios swift swiftui swiftui-navigationlink