如何访问另一个结构中的变量? SWIFTUI [英] How to access to a variable in another struct? SWIFTUI
本文介绍了如何访问另一个结构中的变量? SWIFTUI的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想访问其他结构中的变量以得到总数。
I would like to access to variables in other structs to have a total count.
示例代码会更好地演示:
Example code would demonstrate better:
struct level1: View {
@State var score1 = 5
}
struct level2: View {
@State var score2 = 7
}
在另一个结构中,我希望能够使用score1和score2变量。下面的代码不起作用,但是我需要这样的东西。
In another struct, I would like to be able use score1 and score2 variables. The below code doesn't work, but I need something like this.
struct finalScore: View {
@State var totalScore = level1.score1 + level2.score2
}
推荐答案
以某种不同的方式进行思考...如下所示,单源信任,模型分离-视图分离,模型更改-视图反应,这就是SwiftUI的做法。
Rethink it in some different way... like below, single-source trust, model separated - view separated, model changed - view react, this is the way SwiftUI goes.
像
import SwiftUI
import Combine
class ScoreModel: ObservableObject {
@Published var score1 = 5
@Published var score2 = 7
}
struct MainView: View {
@ObservedObject var vm: ScoreModel = ScoreModel()
var body: some View {
VStack {
level1(vm: vm)
level2(vm: vm)
Divider()
finalScore(vm: vm)
}
}
}
struct level1: View {
@ObservedObject var vm: ScoreModel
var body: some View {
Text("\(vm.score1)")
}
}
struct level2: View {
@ObservedObject var vm: ScoreModel
var body: some View {
Text("\(vm.score2)")
}
}
struct finalScore: View {
@ObservedObject var vm: ScoreModel
var body: some View {
Text("\(vm.score1 + vm.score2)")
}
}
这篇关于如何访问另一个结构中的变量? SWIFTUI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文