gpt4 book ai didi

swift - 从表格单元格中检索信息?

转载 作者:行者123 更新时间:2023-11-28 15:56:24 25 4
gpt4 key购买 nike

我有一个带有 2 个标签和一个按钮的自定义 UITableViewCell。单元格有它自己的类:

class personTableCell: UITableViewCell {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var emailLabel: UILabel!

@IBAction func inviteButtonPressed(_ sender: Any) {
self.accessoryType = .checkmark
}
}

在包含 TableView 的 View Controller 中,我使用此方法将单元格添加到表中:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "person", for: indexPath) as? personTableCell
cell?.nameLabel.text = results[indexPath.row].name
cell?.emailLabel.text = results[indexPath.row].email
return cell!
}

当用户按下调用 @IBAction func inviteButtonPressed 的单元格内的按钮时,我想将单元格的标签文本添加到一个数组中,该数组在与表相同的 View Controller 中初始化。

如果 @IBAction func inviteButtonPressed 作为表的 View Controller 位于单独的文件中,我如何实现这样的事情?

最佳答案

我认为使用委托(delegate)是解决方案之一。

在 TableViewCell 类中

@objc protocol PersonTableViewCellDelegate {
func personTableViewCellInviteButtonPressed(cell: PersonTableViewCell)
}

class PersonTableViewCell: UITableViewCell {

weak var delegate: PersonTableViewCellDelegate?

@IBAction func inviteButtonPressed(_ sender: Any) {
delegate?.personTableViewCellInviteButtonPressed(cell: self)
}

}

在 ViewController 类中

class TableViewController: UITableViewController, PersonTableViewCellDelegate {

var results: [Person] = []
var invited: [Person] = []

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "person", for: indexPath) as! PersonTableViewCell
cell.nameLabel.text = results[indexPath.row].name
cell.emailLabel.text = results[indexPath.row].email
cell.delegate = self
return cell
}

func personTableViewCellInviteButtonPressed(cell: PersonTableViewCell) {
guard let indexPath = tableView.indexPath(for: cell) else {
return
}
let person = results[indexPath.row]
invited.append(person)
}

}

关于swift - 从表格单元格中检索信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41666189/

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