ios – 从Swift中的UITableViewCell子类中获取IndexPath

我有一个定制的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动态转换失败.

任何想法我的代码有什么问题?

或者我可以接受任何其他建议,让我以任何其他方式取得理想的结果.

谢谢.

解决方法

听起来你需要一个代表:

Delegates in swift?

然后将单元格本身作为参数传递给代理,然后可以轻松地执行tableView.indexPathForCell(cellFromDelegateMethod)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...