gpt4 book ai didi

arrays - 如何使用 Swift 获取 UITableView Cell 的标签文本?

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:48 26 4
gpt4 key购买 nike

我想制作简单的 UITabelView。我用名为 backgroundviewcell 的自定义类注册了它的单元格。我想获取所选单元格的标签。我尝试了很多次,但输出为零值。我也尝试过堆栈溢出的解决方案,但它对我不起作用。这是我的 cellForRowAt indexPath 代码:

 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> backgroundViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "soundElementalcell") as! backgroundViewCell


let imageNames = sections[indexPath.section].images[indexPath.row]

cell.Labeltittle.text = sections[indexPath.section].items[indexPath.row]
cell.Labeltittle.textColor = UIColor(hex : 0x90BA27)
cell.LabelDetail.text = sections[indexPath.section].detail[indexPath.row]
//cell.detailTextLabel?.textColor = UIColor.red
//cell.isHighlighted = false

cell.backgroundColor = UIColor.clear
cell.iconview.image = UIImage(named: imageNames)

return cell
}

这是我的 didSelectRowAt indexPath 代码:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)  {


let indexPath = tableView.indexPathForSelectedRow!
let currentCell = tableView.cellForRow(at: indexPath)!

celltext = currentCell.textLabel!.text
performSegue(withIdentifier: "showPlayer", sender: self)
}

我的 Segue 方法是:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPlayer" {

let playerVC = segue.destination as! PlayerViewController
playerVC.trackName = (celltext)! as String


}
}

最佳答案

而不是从单元格的 label 访问文本您需要访问用于填充 tableView's 的数组细胞数据。

所以你需要使用UITableViewDelegate方法 didSelectRowAtindexPath并通过 tableView 方法访问您正在使用的数组。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath.row)
//Access the array that you have used to fill the tableViewCell
print(yourArray[indexPath.row])
}

注意:一旦确认TableView delegate与您的 ViewController 正确连接这样它就会调用didSelectRowAt选择单元格时的方法。

编辑:如果你想传递数据,那么试试这样。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
performSegue(withIdentifier: "showPlayer", sender: indexPath) //Pass indexPath as sender instead of self
}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPlayer" {

let playerVC = segue.destination as! PlayerViewController
let indexPath = sender as! IndexPath
playerVC.trackName = sections[indexPath.section].items[indexPath.row]
}
}

关于arrays - 如何使用 Swift 获取 UITableView Cell 的标签文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41887698/

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