【发布时间】:2019-05-29 00:00:11
【问题描述】:
我有想要通过 segue 发送到另一个视图控制器的数据。我将一些用户选择的数据添加到表视图的“didselectrow”内部的第一个视图控制器中的数组中,并在“prepareforsegue”中尝试将该数组的第一个元素设置为等于我的第二个视图控制器中的变量。但是,我收到一个“索引超出范围错误”,告诉我数组为空,我不知道为什么。
这是第一个视图控制器:
var selectedStores = [String]()
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
selectedStores.append(stores[indexPath.row])
performSegue(withIdentifier: "showStoreDetailsSegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
print("Prepare for segue called")
if segue.identifier == "showStoreDetailsSegue" {
let destinationVC = segue.destination as! StoreDetailsViewController
destinationVC.selectedStore = selectedStores[0]
}
}
第二个视图控制器(StoreDetailsViewController):
var selectedStore = String()
我有另一个视图控制器在做同样的事情,但是在 prepareforsegue 函数中数组不是空的。我将 tableview 单元通过名为“showStoreDetailsSegue”的 segue 连接到 secondviewcontroller。
【问题讨论】: