如何在SwiftUI中将顺序数据传递到navigationBarTitle

如何在SwiftUI中将顺序数据传递到navigationBarTitle,swiftui,navigationbar,master-detail,dataflow,Swiftui,Navigationbar,Master Detail,Dataflow,我有一个主细节应用程序,以用户列表->他们的城市->他们的城镇开始。视图的内容工作正常,但我不知道如何调整数据流,以便.navigationBarTitle反映以前选择的项目。e、 如果我选择用户“jimmy”,我希望“jimmy”成为城市列表中的标题 以下是我的数据模型: import SwiftUI struct UserModel: Codable, Identifiable { let id: Int let firstName: String let last

我有一个主细节应用程序,以用户列表->他们的城市->他们的城镇开始。视图的内容工作正常,但我不知道如何调整数据流,以便.navigationBarTitle反映以前选择的项目。e、 如果我选择用户“jimmy”,我希望“jimmy”成为城市列表中的标题

以下是我的数据模型:

import SwiftUI

struct UserModel: Codable, Identifiable {
    let id: Int
    let firstName: String
    let lastName: String
    let cities: [CityModel]

    enum CodingKeys: String, CodingKey {
        case id
        case firstName = "first_name"
        case lastName = "last_name"
        case cities
    }
}

struct CityModel: Codable, Identifiable {
    let id: Int
    let name: String
    let towns: [TownModel]
}

struct TownModel: Codable, Identifiable {
    let id: Int
    let name: String
}
这是我的根视图UserList.swift:

import SwiftUI

struct UserList: View {
    var body: some View {
        NavigationView {
            List(userData) { user in
                NavigationLink(destination: CityList(cities: user.cities)) {
                    UserRow(user: user)
                }

            }
            .navigationBarTitle(Text("Users"))
        }
    }
}

struct UserList_Previews: PreviewProvider {
    static var previews: some View {
        UserList()
    }
}
这是CityList.swift单击用户打开:

import SwiftUI

struct CityList: View {
    var thisUser: UserModel
    var cities: [CityModel]

    var body: some View {
        List (cities) { city in
            NavigationLink(destination: TownList(towns: city.towns)) {
               CityRow(city: city)

            }.navigationBarTitle(Text(self.thisUser.firstName))
        }
    }
}
该错误在UserList.swift的下一行抛出,因为它正在调用CityList,但不是CityList引用“thisUser”的原因。只是我不确定调整它的正确语法是什么

NavigationLink(destination: CityList(cities: user.cities)) { UserRow(user: user) }

ERROR: Missing argument for parameter 'thisUser' in call

非常感谢您的帮助

您可以将用户传递到
CityList
,就像传递城市列表一样

错误消息告诉您缺少
CityList
自动接收的memberwise初始值设定项的一个参数。memberwise初始值设定项接受结构的所有属性,我相信,按照它们在结构中声明的顺序

NavigationLink(destination: CityList(thisUser: user, cities: user.cities)) { UserRow(user: user) }