gpt4 book ai didi

ios - 从具有 id 的 UItableview 单元格中获取数据

转载 作者:搜寻专家 更新时间:2023-11-01 07:13:02 25 4
gpt4 key购买 nike

我正在处理一个项目,其中在 UITableView 中有一个订单列表。订单来自 JSON 格式的 API。每个 UITableview 单元格都有:

  1. 店铺名称

  2. 店铺地址

  3. 客户姓名

  4. 客户地址

同样在 JSON 中我有 order_id。

我在 UItableview 中获取了数据,没问题。但是当用户点击其中一个订单时, View 应该转到订单详细信息。我通过类似 help/order/2 的链接在下一个 View 中获取订单详细信息,其中 2 是订单号。如何保存 order_id 并将其传递给下一个 View 以发出调用请求以获取详细信息?

我将订单保存在这样的类中:

class Order {
private var _date : String?
private var _logo : String?
private var _shopname : String?
private var _shopaddress : String?
private var _clientName : String?
private var _ClientAddress : String?
private var _PerferTime : String?
private var _Cost : String?

var date : String{
return _date!
}
var shopname : String{
return _shopname!
}
var shopaddress : String {
return _shopaddress!
}
var clientName : String {
return _clientName!
}
var ClientAddress : String{
return _ClientAddress!
}
var PerferTime : String{
return _PerferTime!
}
var Cost : String{
return _Cost!
}
var Logo : String{
return _logo!
}

init(shopname : String , shopaddress :String,clientName : String , ClientAddress : String, PerferTime : String , Cost : String , date:String , Logo : String) {
self._shopname = shopname
self._shopaddress = shopaddress
self._clientName = clientName
self._ClientAddress = ClientAddress
self._PerferTime = PerferTime
self._Cost = Cost
self._date = date
self._logo = Logo
}
}

更新

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
guard orders.count > indexPath.row else {
print("Index out of range")
return
}
let order = orders[indexPath.row]

print(order.id)

}

最佳答案

您无需将数据保存在可重复使用的 UITableViewCell 中。单元格只是显示数据。使用存储在某处的 [Order] 数组(例如包含此 TableView 的 UIViewController)。

并通过 UITableViewDelegate 方法从该数组获取order_id:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)

喜欢:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
guard orders.count > indexPath.row else {
print("Index out of range")
return
}
let order = orders[indexPath.row]
if <#You want to present new VC via navigation controller#> {
navigationController?.pushViewController(<#OrderDetailsViewController#>, animated: true)
}else{
<#Do some other presentation#>
}

关于ios - 从具有 id 的 UItableview 单元格中获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43902835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com