如何将表格行ID传递给下一个视图?

时间:2019-07-19 15:34:23

标签: ios swift

我有一个表视图控制器,该控制器显示来自Web api的json数据(列表列表)。我想在用户单击该行时向下钻取到所选列表。我似乎无法弄清楚如何将列表ID传递给下一个视图控制器。

这是第一个视图中发货清单的结构

struct Shipments: Codable {
  var result: [Shipment]
}

struct Shipment: Codable {
  var ListID: String
  var ShowName: String
  var Booth: String
  var ShipDate: String
  var ShipVia: String
  var Weight: String
}

我将所选行传递给下一个视图控制器,如下所示:

var ShipListID = [Shipment]()
....
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let vc = ShippingUnitsTableViewController()
    vc.ShipListID = [ShipLists[indexPath.row]]
    navigationController?.pushViewController(vc, animated: true)

}

这是打印传递到下一个视图控制器的信息的结果

[Test.Shipment(ListID: "8", Name: "BIG SHOW 2020 Las Vegas", Booth: "212", ShipDate: "2019-09-21", ShipVia: "sv", Weight: "3795.00")]

如何在第二个视图控制器中访问ListID的值?

2 个答案:

答案 0 :(得分:1)

您应该能够在推送视图控制器的视图控制器中访问它。

例如: 在ShippingUnitsTableViewController的viewDidLoad()中

[resource]

答案 1 :(得分:1)

您发送带有Shipment的{​​{1}}类型的数组,而您需要像[ShipLists[indexPath.row]]ShipLists[indexPath.row]那样发送数组并在目标ShipLists[indexPath.row].listID或{分别为{1}}

var shipment:Shipment?

目标vc之类

var shipListID:String?