包含多个变量的SwiftUI变量
如果标题让人困惑,我很抱歉。我将尽可能地解释我正在努力实现的目标: 假设我有以下两种观点: ContentView:包含多个变量的SwiftUI变量,swiftui,Swiftui,如果标题让人困惑,我很抱歉。我将尽可能地解释我正在努力实现的目标: 假设我有以下两种观点: ContentView: struct ContentView: View { @State var firstName = "John" @State var middleName = "Michael" @State var lastName = "Doe" var body: some View { TabView(){
struct ContentView: View {
@State var firstName = "John"
@State var middleName = "Michael"
@State var lastName = "Doe"
var body: some View {
TabView(){
ProfileScreen(firstName: $firstName, middleName: $middleName, lastName: $lastName)
.tabItem {
Image("Profile")
}.tag(0)
HomeScreen()
.tabItem {
Image("Home")
}.tag(1)
}
}}
和配置文件屏幕:
struct ProfileScreen: View {
@Binding var firstName: String
@Binding var middleName: String
@Binding var lastName: String
var body: some View {
VStack {
Text(firstName)
Text(middleName)
Text(lastName)
}
}}
是否有一种方法可以将所有三个变量(firstName、middleName和lastName)包含在另一个变量(我们称之为userInfo)中,以节省空间和时间,从而不必在不同的视图中绑定三个单独的变量
谢谢你的时间 您只需将所有属性包装到一个结构中,如下所示
struct ContentView: View {
@State var userInfo = UserInfo(firstName: "John", middleName: "Michael", lastName: "Doe")
var body: some View {
TabView(){
ProfileScreen(userInfo: $userInfo)
.tabItem {
Image("Profile")
}.tag(0)
HomeScreen()
.tabItem {
Image("Home")
}.tag(1)
}
}
}
struct UserInfo {
var firstName: String
var middleName: String
var lastName: String
}
struct ProfileScreen: View {
@Binding var userInfo: UserInfo
var body: some View {
VStack {
Text(userInfo.firstName)
Text(userInfo.middleName)
Text(userInfo.lastName)
}
}
}
谢谢这正是我需要的!