我想访问其他结构中的变量以获得总计数。
示例代码可以更好地演示:
struct level1: View {
@State var score1 = 5
}
struct level2: View {
@State var score2 = 7
}
Run Code Online (Sandbox Code Playgroud)
在另一个结构中,我希望能够使用 Score1 和 Score2 变量。下面的代码不起作用,但我需要这样的东西。
struct finalScore: View {
@State var totalScore = level1.score1 + level2.score2
}
Run Code Online (Sandbox Code Playgroud)
以不同的方式重新思考它......如下所示,单源信任,模型分离 - 视图分离,模型更改 - 视图反应,这就是 SwiftUI 的方式。
喜欢
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)")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6313 次 |
| 最近记录: |