小编lue*_*dev的帖子

为什么 SwiftUI 中的 ForEach 上的此选择不起作用?

有人可以告诉我为什么这个选择不起作用吗?如果我单击其中一行,则ForEach什么也不会发生:/

@FetchRequest(fetchRequest: ContentView.manufacturerByName)
var manufacturers:FetchedResults<Manufacturer>

@State private var selection: Manufacturer?

Section("Manufacturer") {
    List(selection: $selection) {
        ForEach(manufacturers, id:\.self) { manufacturer in
            Text(manufacturer.name ?? "--")
        }
        .onDelete { rows in
            for row in rows {
                let manufacturer = manufacturers[row]
                storageProvider.deleteManufacturer(manufacturer)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

.onDelete方法效果很好。

我想要实现的是,当单击制造商行时,

  • 该行中有一个复选标记
  • 并且变量“选择”应设置为制造商

我知道 AppStore 不允许使用烟草的应用程序。这只是一个学习应用程序。

MyApp.swift

@main
struct MyApp: App {
    let storageProvider = StorageProvider.standard
    
    var body: some Scene {
        WindowGroup {
            ContentView(storageProvider: storageProvider)
                .environment(\.managedObjectContext, storageProvider.persistentContainer.viewContext)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ContentView.swift

import SwiftUI …
Run Code Online (Sandbox Code Playgroud)

swift swiftui

5
推荐指数
1
解决办法
2094
查看次数

标签 统计

swift ×1

swiftui ×1