我有一个 TableView ,当我选择一个项目时,我会进入一个可以编辑该对象的屏幕,然后它将将该项目带回到数组所在的 ViewController 中。我似乎无法获取数组中所选项目的索引。我想象索引存在于这个函数中,因为我调用 segue,然后发送对象进行编辑。
功能:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "goToEditArea", sender: self)
}
这是我获取要发送的数组的地方。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! addArea
if let selectedIndexPath = areaTableView.indexPathForSelectedRow {
// Send over the area to update
vc.area = areaArray[selectedIndexPath.row]
}
}
基本上我只需要对象的整数值,这样我就可以保存在正确的插槽中。
最佳答案
在您的 tableView(_:didSelectRowAt:)
中,将 indexPath.row
传递给 performSegue(withIdentifier:sender:)
:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.performSegue(withIdentifier: "goToEditArea", sender: indexPath.row)
}
然后,您可以稍后在 prepare(for:sender:)
中获取该值:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let vc = segue.destination as! addArea
if let row = sender as? Int {
vc.area = areaArray[row]
}
}
关于arrays - 如何使用 TableView 获取数组中所选值的 Int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252175/