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