gpt4 book ai didi

swift - UITableView - 根据 UITableView 的行号在主视图 Controller 中执行不同的功能

转载 作者:行者123 更新时间:2023-11-30 10:52:26 27 4
gpt4 key购买 nike

使用以下代码创建运行良好的 UITableView:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return(arrayOfImages.count)
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! ViewController2TableViewCell

cell.niceImage.image = UIImage(named: arrayOfImages[indexPath.row] + ".png")

return(cell)

}

然后,我使用以下代码将 segue 展开到 ViewController1 并执行我的函数,这也运行良好:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destVC = segue.destination as! ViewController

destVC.posn += 1

destVC.myFunction(Parameter1: 1)

arrayOfImages 包含 10 个图像(目前)。我希望每个图像(也称为 UITableView 中的每一行)在 destVC 中执行不同的函数。即该函数取决于行号。使用上面的代码,对每一行都执行相同的函数,这并不理想

我尝试使用以下内容:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
myIndex = indexPath.row
}

然后使我的函数依赖于indexPath.row的值,但myIndex总是显示为0,无论它实际上是哪一行

最佳答案

您每次都为 destVC 函数的参数发送整数 1。那就是问题所在。 prepareForSegue方法中发送选定的tableView的indexPath.row

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let indexPath = tableView.indexPathForSelectedRow {
let destVC = segue.destination as! ViewController
destVC.posn += 1
destVC.myFunction(Parameter1: indexPath.row)
}
}

关于swift - UITableView - 根据 UITableView 的行号在主视图 Controller 中执行不同的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54318791/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com