Swiftui LazyVGrid OnTappsive导航到下一屏幕快捷界面
我对swiftUI还是个新手。我已经在点击时创建了一个网格视图,我想在该视图上转到下一个屏幕。但不知何故,我无法设法推到下一个屏幕。我是这样做的:Swiftui LazyVGrid OnTappsive导航到下一屏幕快捷界面,swiftui,swiftui-navigationlink,Swiftui,Swiftui Navigationlink,我对swiftUI还是个新手。我已经在点击时创建了一个网格视图,我想在该视图上转到下一个屏幕。但不知何故,我无法设法推到下一个屏幕。我是这样做的: var body: some View { NavigationView { ScrollView { LazyVGrid(columns: gridItems, spacing: 16) { ForEach(viewModel.pokemon) { pokemo
var body: some View {
NavigationView {
ScrollView {
LazyVGrid(columns: gridItems, spacing: 16) {
ForEach(viewModel.pokemon) { pokemon in
PokemonCell(pokemon: pokemon, viewModel: viewModel)
.onTapGesture {
NavigationLink(destination: PokemonDetailView(pokemon: pokemon)) {
Text(pokemon.name)
}
}
}
}
}
.navigationTitle("Pokedex")
}
}
在这样做的时候,我得到了一个警告
“NavigationLink”初始值设定项的结果未使用
有人能告诉我怎么做吗?
.ontapsignate
添加了一个动作,以便在视图识别点击手势时执行。在您的情况下,不需要使用.ontapsignate
。如果您想在点击单元格时转到另一个视图,则需要编写NavigationLink
,如下所示
如果您想使用
.ontapsignate
,另一种方法是为您点击的单元格的口袋妖怪创建@State
,并使用NavigationLink
的isActive
绑定。因此,当用户点击单元格时,它将更改@状态
,并在.ontapsignature
中切换isActive
。您可能需要为此添加另一个堆栈(ZStack
等)
NavigationView {
ZStack {
NavigationLink("", destination: PokemonDetailView(pokemon: pokemon), isActive: $isNavigationActive).hidden()
ScrollView {
// ...
.ontapsignate
添加视图识别点击手势时要执行的操作。在您的情况下,不需要使用.ontapsignate
。如果您想在点击单元格时转到另一个视图,则需要编写NavigationLink
,如下所示
如果您想使用
.ontapsignate
,另一种方法是为您点击的单元格的口袋妖怪创建@State
,并使用NavigationLink
的isActive
绑定。因此,当用户点击单元格时,它将更改@状态
,并在.ontapsignature
中切换isActive
。您可能需要为此添加另一个堆栈(ZStack
等)
NavigationView {
ZStack {
NavigationLink("", destination: PokemonDetailView(pokemon: pokemon), isActive: $isNavigationActive).hidden()
ScrollView {
// ...