首页 > 解决方案 > 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)
            
        }

    }

标签: swiftswiftui

解决方案


推荐阅读