在SwiftUI中,我在view1中有一个对象,在view2中有一个按钮,我想更改从view2中按下的按钮上对象的值。我是怎么做到的?
我是SwiftUI新手,我使用SwiftUI设计了UI,我在另一个视图中设计了一个可重用的按钮,我在view1中调用了该按钮。现在,当我点击按钮时,如何对view1进行更改 这是我的看法1:在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
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 !!
}
...
}