Swift 我想在点击tableView单元格中的按钮时发送数据

Swift 我想在点击tableView单元格中的按钮时发送数据,swift,parse-platform,Swift,Parse Platform,我正在为我的应用程序实现commentView。我有一个主视图,它是tableview,包含图片和一个按钮,用于转到评论视图。 我希望当用户点击表视图中的comment按钮时,视图显示comment视图,并通过prepareforSegue方法传递PFObject 现在注释按钮可以工作了,但我在prepareforsegue中有一个错误 这是我的密码 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject

我正在为我的应用程序实现commentView。我有一个主视图,它是tableview,包含图片和一个按钮,用于转到评论视图。 我希望当用户点击表视图中的comment按钮时,视图显示comment视图,并通过prepareforSegue方法传递PFObject

现在注释按钮可以工作了,但我在prepareforsegue中有一个错误 这是我的密码

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

if (segue.identifier == "mainToComment") {


let destViewController : CommentVC = segue.destinationViewController as! CommentVC
destViewController.parentObjectID = parentObjectID
let selectedRowIndex = self.tableView.indexPathForSelectedRow

destViewController.object = (postsArray[(selectedRowIndex?.row)!] as? PFObject)
这是我的按钮的工作原理

 @IBAction func commentButtonTapped(sender: AnyObject) {

    let button = sender as! UIButton
    let view = button.superview!
    let cell = view.superview as! MainTVCE
    let indexPath = tableView.indexPathForCell(cell)
    parentObjectID = postsArray[(indexPath?.row)!].objectId!!
调试时,selectedRowIndex没有值(nil) 我想这是因为我点击了按钮而不是手机

如何为此设置indexPath? 或
如何使其工作?

我不知道您的主TableViewCell视图控制器的名称。假设,我将此视图控制器命名为
MainTableViewCell

我在
MainTableViewCell
中创建了一个闭包:

var didRequestToShowComment:((cell:UITableViewCell) -> ())?
点击按钮注释时:

@IBAction func commentButtonTapped(sender: AnyObject) {
    self.didRequestToShowComment?(self) // self is this UITableViewCell
}
在主视图控制器的
表格cellforrowatinex…

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    ...
    mainTableViewCell.didRequestToShowComment = { (cell) in
        let indexPath = tableView.indexPathForCell(cell)
        let objectToSend = postsArray[indexPath.row] as? PFObject
        // Show your Comment view controller here, and set object to send here
    }
    ...


    return cell
}

//在此处显示您的注释视图控制器,并设置要发送到此处的对象self.objectTwo=objectToSend!self.performsguewithidentifier(“mainToComment”,sender:self)我在上面声明了object2,有没有更好的方法来设置object?我通常通过代码隐藏来显示视图控制器,而不是通过脚本中定义的
segue
来显示。让commectVC=。。。。;commentVC.data=objectToSend;self.presentViewController(commentVC,动画:true,完成:nil)。这可能不是最好的方法,但可以满足您的要求。我正在尝试将单击事件附加到表视图单元格内的图像。“单击偶数”将根据包含图像的单元格进行泛化以生效。谢谢你的回答间接地帮助了我。如果你使用self,它会更干净。didRequestToShowComment?(self)@LachezarTodorov谢谢你的建议。我更新了我的答案。