在SwiftUI中,我在view1中有一个对象,在view2中有一个按钮,我想更改从view2中按下的按钮上对象的值。我是怎么做到的?

在SwiftUI中,我在view1中有一个对象,在view2中有一个按钮,我想更改从view2中按下的按钮上对象的值。我是怎么做到的?,swiftui,Swiftui,我是SwiftUI新手,我使用SwiftUI设计了UI,我在另一个视图中设计了一个可重用的按钮,我在view1中调用了该按钮。现在,当我点击按钮时,如何对view1进行更改 这是我的看法1: struct ContentView: View { @State var RandomNumber = 1 var body: some View { ZStack{ Color(#colorLiteral(red: 0.4745098054, green: 0.8392156

我是SwiftUI新手,我使用SwiftUI设计了UI,我在另一个视图中设计了一个可重用的按钮,我在view1中调用了该按钮。现在,当我点击按钮时,如何对view1进行更改

这是我的看法1:

struct ContentView: View {

@State var RandomNumber = 1

var body: some View {
    ZStack{
        Color(#colorLiteral(red: 0.4745098054, green: 0.8392156959, blue: 0.9764705896, alpha: 1))
            .edgesIgnoringSafeArea(.all)
        
        VStack{
            Image("RollLogo")
            .background(
                Color.clear
                .blur(radius: 4.0)
                .offset(x: -2, y: -2)
            )
            .shadow(color: Color(#colorLiteral(red: 0.9098039269, green: 0.4784313738, blue: 0.6431372762, alpha: 1)), radius: 20.0, x: 10.0, y: 10.0)
            .shadow(color: Color(#colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)), radius: 20.0, x: -10.0, y: -10.0)
            
            Spacer()
            HStack {
                DiceImage(n: RandomNumber)
                //DiceImage(n: 1)
            }.padding(.horizontal)
            Spacer()
            
            Buttons(CustomColor: Color("Accent"))
            .padding(.top)
            Spacer()
            
        }
    }
  }
}
在view2中,我有一个启用了手势的矩形视图。现在当我点击它时,我会生成一个随机数,现在这个随机数我想在view1状态变量中赋值

.onTapGesture {
                let numberr = Int.random(in: 1...6)
                print("Am tapped",numberr)
        }
您应该通过绑定传递随机数

HStack {
    DiceImage(n: $RandomNumber)    // << here !!
}.padding(.horizontal)

你是怎么尝试的?有代码吗?@Asperi我已经编辑了我的答案,您可以查看代码以便更好地理解
struct DiceImage: View {
   @Binding n: Int

   ...

   .onTapGesture {
                let numberr = Int.random(in: 1...6)
                print("Am tapped",numberr)
                self.n = numbers               // << here !!
        }
   ...
}