You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI列表刷新自动返回详情页的问题与解决咨询

SwiftUI列表刷新导致详情页自动返回的问题与解决

在SwiftUI中实现了列表元素跳转至详情页的功能,但从服务器刷新列表数据时,若当前处于详情页,应用会自动返回列表页。原因是列表重建导致NavigationLink的引用丢失,想询问是否有方法阻止该自动返回行为。

原始首页结构代码:

NavigationView {
    HStack {
        ForEach(items) { item in 
            NavigationLink(destination: DetailView(id: item.id)) {
                Text(item.name)
            }
        }
    }
}

更新:临时解决方案
最终解决了问题,但并非理想方式:将NavigationLink从ForEach中移出,放到外部,通过状态变量控制跳转状态:

// 定义在body外部
@State private var isShowingDetailView = false
@State private var selectedID: String = ""

NavigationView {
    HStack {
        NavigationLink(destination: DetailView(id: selectedID), isActive: $isShowingDetailView) {  }

        ForEach(items) { item in 
            Text(item.name)
                .onTapGesture {
                    self.selectedID = item.id
                    self.isShowingDetailView = true
                }
        }
    }
}

内容的提问来源于stack exchange,提问作者danybarco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 07:01:25