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

SwiftUI如何将列表多选内容传递到下一个视图并在Xcode调试控制台打印

SwiftUI多选列表数据传递与打印解决方案

1. 多选条目传递到下一个视图

首先修改目标视图FlavorSearchView,新增两个属性用于接收传入的选中数据:

import SwiftUI

struct FlavorSearchView: View {
    // 接收选中的应用、法规数据,如需修改可将let改为@State或@Binding
    let selectedApplications: [Application]
    let selectedLegislations: [Legislation]
    
    var body: some View {
        // 此处可自定义视图逻辑,直接使用上述两个属性即可
        VStack(spacing: 20) {
            Text("选中的应用:\(selectedApplications.map { $0.name }.joined(separator: "、"))")
            Text("选中的法规:\(selectedLegislations.map { $0.name }.joined(separator: "、"))")
        }
    }
}

之后修改WelcomeView中的NavigationLink代码,过滤出选中的条目后传入目标视图:

// 替换原有NavigationLink代码
NavigationLink(destination: FlavorSearchView(
    selectedApplications: applications.filter { $0.isSelected },
    selectedLegislations: legislations.filter { $0.isSelected }
)) {
    Text("Next")
        .padding()
}

提示:原有代码中切换选中状态的三目表达式可以简化为applications[index].isSelected.toggle(),写法更简洁


2. 选中内容打印到Xcode调试控制台

可按需选择两种打印时机:

每次切换选中状态时实时打印

在两个列表的Button的action闭包末尾添加打印代码即可,以应用列表为例:

Button(action: {
    applications[index].isSelected.toggle()
    // 打印当前所有选中的应用
    print("当前选中应用:\(applications.filter { $0.isSelected }.map { $0.name })")
}) {
    // 原有Button内容代码不变
}

法规列表的Button同理添加对应打印代码即可。

点击Next跳转时一次性打印

给Next按钮添加点击手势触发打印,修改后的NavigationLink代码如下:

NavigationLink(destination: FlavorSearchView(
    selectedApplications: applications.filter { $0.isSelected },
    selectedLegislations: legislations.filter { $0.isSelected }
)) {
    Text("Next")
        .padding()
        .onTapGesture {
            let selectedAppNames = applications.filter { $0.isSelected }.map { $0.name }
            let selectedLegisNames = legislations.filter { $0.isSelected }.map { $0.name }
            print("===== 用户选中结果 =====")
            print("应用类:\(selectedAppNames)")
            print("法规类:\(selectedLegisNames)")
        }
}

注意:请确保Application、Legislation两个结构体的定义在FlavorSearchView的可见作用域内,无需重复定义

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:39:04