【发布时间】:2021-08-04 08:02:49
【问题描述】:
我是学习 SwiftUI 和 XCode 的新手,无法弄清楚如何将变量从视图传递到另一个视图。我阅读了@State 和@Binding 变量,但据我所知,这是针对变化的值。我有一个静态值,我根据用户打开应用的日期计算得出。
变量是当前月相,本地存储在我的主 ContentView 中。我想将此变量传递给通过单击 NavigationLink 访问的第二个视图。
ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
let currentMoonPhaseArray = calculateMoonPhase()
let moonPhase = currentMoonPhaseArray[0]
NavigationView{
ScrollView(.vertical, showsIndicators:true) {
VStack(spacing:3){
NavigationLink(destination: MoonPhaseView()){
Text("Moon Phase - " + moonPhase)
}
}
}
.frame(maxWidth: .infinity)
.navigationTitle("MySky")
.navigationBarTitleDisplayMode(.inline)
}
}
}
MoonPhaseView.swift
import SwiftUI
struct MoonPhaseView: View {
var body: some View {
HStack{
Text("MoonPhaseView!")
}
}
}
struct MoonPhaseView_Previews: PreviewProvider {
static var previews: some View {
MoonPhaseView()
}
}
我的目标是将 ContentView.swift 中计算出的月相传递给 MoonPhaseView.swift。我相信绑定是我读过的正确方法,但所有绑定实现似乎都是为了经常更新视图。
感谢任何帮助或指点!
【问题讨论】: