Swift UI导航链接不工作与点击手势



我在Swift UI中有一个点击手势的导航链接的问题。发生的事情是,一旦我点击导航链接,代码工作正常,点击手势上的函数将项目添加到购物车中,我被重定向到NavLink目的地。问题是,一毫秒后,我被传送回前一个视图。

录制导航链接后,视图打开,运行代码,然后关闭。

带点击手势的导航链接是这样的:

NavigationLink(destination: CartView(homeData: homeData)){
Text("Add to Cart")
.font(.title2)
.fontWeight(.heavy)
.foregroundColor(.white)
.padding(.vertical)
.frame(width: UIScreen.main.bounds.width - 30)
.background(LinearGradient(gradient: Gradient(colors: [Color("TopGradientColor"), Color("BottomGradientColor")]), startPoint: .top, endPoint: .bottom))
.cornerRadius(15)
}.simultaneousGesture(TapGesture().onEnded{
homeData.addToCart(item: item)
})

我已经尝试添加。ontapgestire{…}到文本项,但我仍然有这个问题。我已经检查了这两件事单独工作,它不是函数或视图的问题。

提前感谢大家!

您可以尝试NavigationLink的其他初始化器,例如:

@State var currentTag: ItemType? // <-- here, adjust ItemType
NavigationLink(destination: CartView(homeData: homeData),
tag: item, 
selection: $currentTag) {
Text("Add to Cart")
.font(.title2)
.fontWeight(.heavy)
.foregroundColor(.white)
.padding(.vertical)
.frame(width: UIScreen.main.bounds.width - 30)
.background(LinearGradient(gradient: Gradient(colors: [Color("TopGradientColor"), Color("BottomGradientColor")]), startPoint: .top, endPoint: .bottom))
.cornerRadius(15)
}.simultaneousGesture(TapGesture().onEnded {
print("---> simultaneousGesture")
homeData.addToCart(item: item)
self.currentTag = item  // <-- here
})

相关内容

  • 没有找到相关文章