ios - 为 for 循环内的 segue 做准备
问题描述
我有一个带有以下willSelectRowAt
代码的表格视图:
func tableView(_ tableView: UITableView, willSelectRowAt indexPath: IndexPath) -> IndexPath? {
for n in 0...carsArray.count - 1 {
if indexPath.row == n {
print(carsArray[n].name)
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToEditCar" {
let name = carsArray[n].name
print(name)
let indexCar = n
let destinationVC = segue.destination as! EditCarViewController
destinationVC.name = name
destinationVC.indexCar = indexCar
}
}
performSegue(withIdentifier: "goToEditCar", sender: self)
}
}
}
不知何故,该prepare
函数不会传递所需的数据,也不会print(name)
-谁能告诉我这段代码的问题?
解决方案
您的代码根本无法工作。您使用了错误的 API,prepare(for
永远不会在另一个方法中被调用,实际上您不需要循环。
willSelectRowAt
是控制是否允许选择一个单元格。indexPath
如果允许则返回,否则返回nil
这不是你想要的。调用时使用didSelect
并传递索引路径sender
performSegue
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "goToEditCar", sender: indexPath)
}
从参数prepare(for
中获取索引路径sender
func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "goToEditCar" {
let indexPath = sender as! IndexPath
let name = carsArray[indexPath.row].name
print(name)
let destinationVC = segue.destination as! EditCarViewController
destinationVC.name = name
destinationVC.indexCar = indexPath.row
}
}
推荐阅读
- python - 无法在 div 内的 h2 内的 span 内获取值
- amazon-web-services - 用户在加特林场景中注入时更改标头值
- r - 数据框错误,尝试创建热图
- javascript - useEffect 无限循环异步
- javascript - 一副纸牌补充一次,但不是第二次
- html - 如何在不使用 javascript 的情况下允许输入以 www 开头的 URL?
- python-3.x - 未指定模型时,如何使用 SQLAlchemy 计算查询的行数?
- email - 单元格到文本框并返回只有电子邮件地址
- php - Twig 文件 - 使所有字段出现在单列而不是 2 列中
- amcharts - amcharts 在图表上叠加图例