【发布时间】:2017-05-10 21:12:07
【问题描述】:
我正在处理一个 UITableView 中有订单列表的项目。订单来自 JSON 格式的 API。每个 UITableview 单元格都有:
店铺名称
店铺地址
客户名称
客户地址
在 JSON 中我也有 order_id。
我在 UItableview 中获取了数据,这很好。但是,当用户单击其中一个订单时,视图应该转到订单详细信息。我通过help/order/2 之类的链接在下一个视图中获取订单详细信息,其中 2 是订单号。如何保存 order_id 并将其传递给下一个视图以发出调用请求以获取详细信息?
我将订单保存在这样的类中:
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)
}
【问题讨论】:
-
不相关,但请停止使用私有后备实例变量来获取只读常量。这在 Swift 中是可笑的。只需将所有变量声明为(非可选)常量(
let)。并且请遵守所有变量名都应该以小写字母开头的命名约定。 -
你想如何构建下一个视图并完成过渡?
标签: ios json swift uitableview