Ios 如何使用Alamofire和Combine在Swift UI中获取详细Api?
我使用Alamofire的网络管理器与get all API类似(NetworkManager.swift) 当我根据发送的ID列表检索数据时,我想转到导航:(HomeView.swift) 如果我想切换页面,NetworkDetail.swift必须是这样的,这样Alamofire就可以从ID细节动态中移除Ios 如何使用Alamofire和Combine在Swift UI中获取详细Api?,ios,swift,swiftui,alamofire,combine,Ios,Swift,Swiftui,Alamofire,Combine,我使用Alamofire的网络管理器与get all API类似(NetworkManager.swift) 当我根据发送的ID列表检索数据时,我想转到导航:(HomeView.swift) 如果我想切换页面,NetworkDetail.swift必须是这样的,这样Alamofire就可以从ID细节动态中移除 private func loadDetailData() { let parameters = "12" AF.request(&
private func loadDetailData() {
let parameters = "12"
AF.request("\(api_url_detail)/\(id)",)
.responseJSON{ response in
guard let data = response.data else { return }
let gamesDetail = try! JSONDecoder().decode(GamesDetail.self, from: data)
print(gamesDetail)
DispatchQueue.main.async {
self.gamesDetail = gamesDetail
self.loading = false
}
}
这是我的GameDetailView.swift
@Published var games = GamesDataList(results: [])
@Published var loading = false
private let api_url_base = "https://api.rawg.io/api/games"
List(networkManager.games.results) { game in
NavigationLink(destination: GameDetailView(game: game)){
GamesRowView(game: game)
}
}
var game: Games
@ObservedObject var networkDetail = NetworkDetail()
var body: some View {
VStack {
URLImage(URL(string: "\(networkDetail.gamesDetail.background_image)")!, delay: 0.25) {proxy in
proxy.image.resizable()
.frame(width: 120, height: 80)
.aspectRatio(contentMode: .fill)
.clipped()
}
HStack {
Text("Description").foregroundColor(.gray)
Spacer()
}
Text(networkDetail.gamesDetail.description).lineLimit(nil)
Spacer()
}.navigationBarTitle(Text(game.slug), displayMode: .inline)
.padding()
}
我想知道何时单击列表中的项目,它将传递ID并从Alamofire发出请求:
请帮帮我,谢谢。目前,详细的API仍然是静态的。您在哪里跟踪
加载
?看起来它没有被切换。需要更多代码才能查看工作流。好的,我将在我的问题中编辑和添加代码流。是否清楚bro?。我不清楚您的描述,但我相信您希望将ID从列表视图传递到详细信息视图。如果是这样,请在details视图中为保留@Binding属性,并从NavigationLink传递ID。如果我理解错了,请让我知道。是的,就像那样,我成功地传递了ID,但我的问题是:当我转到DetaileView时,我想要基于我从alamofire获得的ID{ID}的hit API。你有参考资料吗?你在哪里跟踪加载?看起来它没有被切换。需要更多代码才能查看工作流。好的,我将在我的问题中编辑和添加代码流。是否清楚bro?。我不清楚您的描述,但我相信您希望将ID从列表视图传递到详细信息视图。如果是这样,请在details视图中为保留@Binding属性,并从NavigationLink传递ID。如果我理解错了,请让我知道。是的,就像那样,我成功地传递了ID,但我的问题是:当我转到DetaileView时,我想要基于我从alamofire获得的ID{ID}的hit API。你有推荐信吗?。