テーブルビューでデータをリストできます。私が行を選択し、私の押されたセルに関連する特定のデータを表示して別のビューコントローラを渡そうとすると、それを作ることができませんでした。 prepareforsegue関数でdata "selectedMeal"変数を格納できませんでしたが、常に[]を返します。 私の主な問題は、セルを選択し、このセルにセグ機能を準備することです。恐らく、DispatchQueue.main.async関数に問題があります。動的値のperformSeguewithIdentifier関数の使用テーブルビュー
*静的なデータに渡そうとするとうまくいきます。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let cell = tableView.cellForRow(at: indexPath) {
cell.accessoryType = .checkmark;
DispatchQueue.main.async {
self.performSegue(withIdentifier: "gotoOrderDetail", sender: self)
}
}
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if (segue.identifier == "gotoOrderDetail") {
let DestViewController : OrderDetailListViewController = segue.destination as! OrderDetailListViewController
let selectedMeal = selectedCells.map { (index: Int) -> SavedMeal in
return savedMeal[index]
}
DestViewController.mealarray = selectedMeal
}
}
なぜDispatchQueue.main.asyncを使用していますか? –