SwiftUI:如何从保存的数据初始化分段拾取器

daolsyd0  于 2023-11-16  发布在  Swift
关注(0)|答案(1)|浏览(114)

我保存selectedIndex的几个分段pickers在UserManager中的值改变时。我想恢复这些值,以设置pickers在重新打开应用程序时。kicker是,这些设置在几个视图中使用,因此pickers绑定到@State变量。状态变量是不可变的,所以我的代码:

@State var abc:Int
Picker("Sort by", selection: $abc)
    let user = UserDefaults.standard
    $abc = user.integer(forKey: "abc")

字符串
编译错误:

无法分配给属性:'$abc'是不可变的
无法将类型“Int”的值分配给类型“Binding”

怎么解决这个问题?

iyr7buue

iyr7buue1#

从iOS 14开始,有一种新的方法可以做到这一点,称为@AppStorage

@AppStorage("abc") var selectedValue = 1
var numbers = [1,2,3,4,5]

var body: some View {
    Picker("Select number", selection: $selectedValue) {
        ForEach(numbers, id: \.self) {
            Text("\($0)")
        }
    }
    .pickerStyle(.segmented)
}

字符串

相关问题