swift - SwiftUI 和 USerDefaults:更新没有 ForEach 的变量
问题描述
我想在没有 ForEach 的情况下在此 PredictedBudget() 中显示预算。当用户修改预算时只需更新Text(userSetting.user)。
struct AddBudget: View {
@ObservedObject var userSets : Settings
@Environment(\.presentationMode) var presentation
@State var totalBudget = " "
var body: some View {
VStack {
Text("Enter your budget!")
HStack {
TextField("Budget", text: $totalBudget).padding()
Button(action: {
addBudget()
}, label: {
Image(systemName: "chevron.up.circle")
.font(.title)
.foregroundColor(.purple)
.padding()
})
}
}
}
func addBudget () {
let userSetings = User(budget: self.totalBudget)
self.userSets.user.append(userSetings)
self.presentation.wrappedValue.dismiss()
}
}
这是我预测的预算视图。我也尝试过使用 EnvoronmentObjetc,但我一直在返回这样的错误:@EnvironmentObject 作为此视图的提升器可能会丢失
struct PredictedBudget: View {
@ObservedObject var userSettings = Settings()
@State var budgetSettings: String
var body: some View {
VStack {
Text("My Budget").fontWeight(.black).foregroundColor(.white).font(.system(size: 22, design: .rounded)).multilineTextAlignment(.center
Text(userSettings.user)
.font(.system(size: 25, weight: .heavy, design: .rounded))
.foregroundColor(.white)
Text("per month")
.font(.headline)
.foregroundColor(.white)
}.frame(minWidth: 0, maxWidth: .infinity, minHeight: 100)
.padding(40)
.background(Color.purple)
.cornerRadius(10)
}
}
解决方案
推荐阅读
- reactjs - Redux Saga vs useEffect
- node.js - 究竟什么是“睡眠”测功机
- python - 如何使用 OOP 过滤数据框的特定列?
- symfony - 如何让 Symfony 翻译不取值,只翻译标签?
- python - python中的正则表达式在标签之间分割每个文本
- docker - Docker 构建无法加载元数据
- python - 我是 python 新手,我正在尝试制作一个 bmi 计算器
- javascript - 使用 VsCode 更漂亮
- r - 将 txt 文件读入列表,其中每个列表元素由以冒号结尾的行分隔
- python - Python 数字识别(在彩色屏幕上)