单击UITableviewCell中的按钮后如何传输值?

时间:2016-11-22 16:00:25

标签: swift uitableview segue

TableView中有一个ViewControllerTableViewCell有一个带有一些内容的textView。现在点击了replyButton中的cellseguesecondViewController。我需要将内容放在textView的{​​{1}}中。怎么做?我使用cell作为下面的代码,但由于indexPathindexPath而崩溃了。谢谢你的帮助。

澄清:我需要单击单元格内的replyButton来实现目标,而不是使用didSelectRowAtIndexPath函数。

enter image description here

代码:

nil

2 个答案:

答案 0 :(得分:0)

您尝试获取文本值的方式没有太大问题,您只是在错误的函数内执行此操作。 UITableView有一个函数didSelectRowAt:indexPath,它可以工作。

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

        let cell = tableView.cellForRow(at: indexPath) as! Replycell
        replyVC.replyQuote = cell.replyTextView.text


    }

答案 1 :(得分:0)

你需要使用一个协议,在Replycell.swift中在类

之前添加它
protocol ReplycellDelegate: class {
func didPressButtonFromCell(cellView: Replycell, id: int)}
在课堂内

添加此

weak var delegate: ReplycellDelegate?

在单元格中的按钮操作内添加此

delegate?.didPressButtonFromCell(cellView: self, id: 2)

现在在uitableviewdatasource之后的类ViewController中添加RepplyCellDelegate,然后你只需调用函数didPressButtonFromCell并且Xcode将自动为你完成它,当按下单元格的按钮时将调用该函数,如果你有视图控制器中的单元格的内容添加一个id变量到Repplycell类,所以你可以在创建时将它传递给每个单元格,如果你得到Replycell类中的文本,而不是协议中的id,声明一个string并将其发送到ViewController。