Swiftui 如何以编程方式从选择器视图中删除所有项

Swiftui 如何以编程方式从选择器视图中删除所有项,swiftui,picker,Swiftui,Picker,我的SwiftUI应用程序中有以下代码 struct ContentView: View { @State private var selectedCountry: Country? @State private var showSetting = false @FetchRequest(entity: Country.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \Country.cntryName,

我的SwiftUI应用程序中有以下代码

struct ContentView: View {

@State private var selectedCountry: Country?
@State private var showSetting = false

@FetchRequest(entity: Country.entity(),
              sortDescriptors: [NSSortDescriptor(keyPath: \Country.cntryName, ascending: true)]
) var countries: FetchedResults<Country>

var body: some View {
    NavigationView {
        VStack {
            Form {
                Picker("Pick a country", selection: $selectedCountry) {
                    ForEach(countries, id: \Country.cntryName) { country in
                        Text(country.cntryName ?? "Error").tag(country as Country?)
                    }
                }
                if selectedCountry != nil {
                    DetailView(cntryName: (selectedCountry?.cntryName!)!)
                }
            }
        }
        .navigationBarTitle("UNECE Data")
        .navigationBarItems(trailing: Button("Settings", action: {
            self.showSetting.toggle()
        }))
    }
    .sheet(isPresented: $showSetting) {
        SettingsView(showSetting: self.$showSetting)
    }
}
}
struct ContentView:View{
@国家/地区:国家/地区?
@状态私有变量showSetting=false
@FetchRequest(实体:Country.entity(),
sortDescriptors:[NSSortDescriptor(密钥路径:\Country.cntryName,升序:true)]
)var国家/地区:获取结果
var body:一些观点{
导航视图{
VStack{
形式{
选择器(“选择一个国家”,选择:$selectedCountry){
ForEach(国家,id:\Country.cntryName){国家/地区
文本(country.cntryName??“Error”).tag(国家作为国家?)
}
}
如果选择了国家/地区!=无{
详细视图(cntryName:(selectedCountry?.cntryName!)!)
}
}
}
.navigationBarTitle(“UNECE数据”)
.navigationBarItems(尾部:按钮(“设置”),操作:{
self.showSetting.toggle()
}))
}
.sheet(显示:$showSetting){
设置视图(显示设置:self.$showSetting)
}
}
}

我在SettingView中更新CoreData国家实体,一旦应用程序返回ContentView,我想从选择器中删除所有项目并加载新数据。在选择器中的重复项上方编码-将新项添加到旧项集中。

动态值集的选择器?请看,我的问题是,当SettingsView被取消时,Picker会加载countries FetchedResults,但它会将Picker中的项目加倍-最初加载的FetchedResults+新加载的项目。