包含多个变量的SwiftUI变量

包含多个变量的SwiftUI变量,swiftui,Swiftui,如果标题让人困惑,我很抱歉。我将尽可能地解释我正在努力实现的目标: 假设我有以下两种观点: ContentView: struct ContentView: View { @State var firstName = "John" @State var middleName = "Michael" @State var lastName = "Doe" var body: some View { TabView(){

如果标题让人困惑,我很抱歉。我将尽可能地解释我正在努力实现的目标: 假设我有以下两种观点:

ContentView:

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)
        }
    }
}

谢谢这正是我需要的!