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

NavigationLink不受EditButton影响:点击编辑后仍不可点击求助

解决表单中NavigationLink在编辑模式下无法点击的问题

问题根源:当Form/List进入编辑模式时,系统会优先响应行的编辑操作(如滑动删除、拖拽排序),默认会屏蔽行内NavigationLink的点击事件,导致预期的跳转功能失效。

通过@Environment(\.editMode)获取编辑状态,用Button触发跳转,避免编辑操作拦截点击:

struct YourView: View {
    @Environment(\.editMode) private var editMode
    @State private var navigate = false
    
    var body: some View {
        NavigationStack {
            Form {
                Button(action: {
                    // 仅在编辑模式下触发跳转
                    guard editMode?.wrappedValue == .active else { return }
                    navigate = true
                }) {
                    HStack {
                        Text("你的跳转文本")
                        Spacer()
                        Image(systemName: "chevron.right")
                            .foregroundColor(.secondary)
                    }
                }
                
                // 隐藏的NavigationLink负责实际跳转
                NavigationLink(isActive: $navigate) {
                    // 目标页面
                    Text("Destination View")
                } label: {
                    EmptyView()
                }
            }
            .navigationTitle("表单标题")
            .toolbar {
                EditButton()
            }
        }
    }
}

方案2:直接控制NavigationLink的启用状态

通过disabled修饰符,让NavigationLink仅在编辑模式下可点击:

struct YourView: View {
    @Environment(\.editMode) private var editMode
    
    var body: some View {
        NavigationStack {
            Form {
                NavigationLink(destination: Text("Destination View")) {
                    Text("你的跳转文本")
                }
                // 非编辑模式下禁用,编辑模式下启用
                .disabled(editMode?.wrappedValue != .active)
            }
            .navigationTitle("表单标题")
            .toolbar {
                EditButton()
            }
        }
    }
}

额外提示

如果表单行包含其他可编辑控件(比如TextField),要确保NavigationLink的点击区域和编辑控件不重叠;如果需要保留行的编辑操作(如删除),方案1会更稳妥,因为它不会干扰默认的编辑交互。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 07:55:23