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

如何在SwiftUI中为每台选中的设备创建独立的自定义唯一视图

设备自定义视图实现方案

你可以通过给设备模型添加类型标识,配合SwiftUI导航跳转的视图匹配逻辑实现需求,具体操作如下:

  • 首先完善设备数据结构,新增设备类型枚举字段,用来区分不同设备:
// 先定义设备类型枚举,覆盖所有你需要适配的设备
enum DeviceType {
    case iPhone8, iPhoneX, iPhone11, iPadPro /* 按需补充其他设备 */
}

// 原有Ios数据模型新增类型字段
struct IosDevice: Identifiable {
    let id = UUID()
    let name: String
    let image: String
    let deviceType: DeviceType
    var sousMenuIos: [IosDevice]? // 保留原有的子菜单属性
}
  • 为每个设备类型单独编写对应的自定义详情视图,比如iPhoneXDetailView、iPadProDetailView,各自实现不同的展示逻辑即可。
  • 修改现有的ContentView代码,给列表项加上导航跳转逻辑,根据点击的设备类型渲染对应视图:
struct ContentView: View {
    var body: some View {
        NavigationView {
            List(Ios, children: \.sousMenuIos) { item in
                NavigationLink {
                    // 匹配设备类型返回对应详情视图
                    switch item.deviceType {
                    case .iPhone8:
                        iPhone8DetailView()
                    case .iPhoneX:
                        iPhoneXDetailView()
                    case .iPhone11:
                        iPhone11DetailView()
                    case .iPadPro:
                        iPadProDetailView()
                    }
                } label: {
                    HStack {
                        Image(item.image)
                            .resizable()
                            .scaledToFit()
                            .frame(width: 60, height: 60)
                        Text(item.name)
                            .font(.system(.title3, design: .rounded))
                            .bold()
                    }
                }
            }
            .navigationTitle("Jailbreak")
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

如果后续需要适配的设备数量较多,可以把视图匹配逻辑封装到DeviceType枚举内部,新增返回对应视图的计算属性即可,后续新增设备只要补充枚举项、对应视图和枚举内部的匹配逻辑,维护成本更低。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 16:27:03