我有一个定制的UITableViewCell子类及其关联的xib.我在这个单元格中有一个UILabel和一个UIButton,我已经将按钮的动作中的接触连接到子类.
我需要的是当单元格中的该按钮被点击时,获取具有该按钮的单元格的索引路径.也可以通过代理或其他东西将其发送回视图控制器.
因为我在一个UITableViewCell子类中,所以我不能使用像this这样的解决方案,因为我没有从单元格子类中引用tableview.经过进一步的调查,我发现了another的解决方案,我在Swift这样实现了.
import UIKit class ContactCell: UITableViewCell { @IBOutlet weak var nameLabel: UILabel! override func awakeFromNib() { super.awakeFromNib() // Initialization code selectionStyle = .None } @IBAction func callButtonPressed(sender: UIButton) { let indexPath = (self.superview as UITableView).indexPathForCell(self) println("indexPath?.row") } }
但是当我点击按钮时,它会崩溃,并显示一条错误消息,表示Swift动态转换失败.
任何想法我的代码有什么问题?
或者我可以接受任何其他建议,让我以任何其他方式取得理想的结果.
谢谢.
解决方法
听起来你需要一个代表:
然后将单元格本身作为参数传递给代理,然后可以轻松地执行tableView.indexPathForCell(cellFromDelegateMethod)