在swift xcode项目中没有读取协议

Chi*_*dog -1 xcode uitableview swift

我有一个UITableview具有独特单元格的单元格,每个单元格都有自己的类,并且它们具有我想要连接到主体的动作UITableviewcontroller

我附加一个协议并在tableviewcontroller中打开它但它没有被读取

我怎么能初始化它或我做错了什么?

这是我的细胞类:

import UIKit

class AddFaxHeadlineTableViewCell: UITableViewCell {

    var delegate: AddFaxHeadlineProtocol?

    @IBOutlet weak var addButton: UIButton!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

    @IBAction func onAddFaxNumberPressed(_ sender: Any) {
        delegate?.faxButtonPressed()

    }

}


protocol AddFaxHeadlineProtocol{
    func faxButtonPressed()
}
Run Code Online (Sandbox Code Playgroud)

在我的tableviewcontroller中我扩展了协议:

class SummaryMainTableViewController: UITableViewController, AddFaxHeadlineProtocol, AddEmailHeadlineProtocol {
Run Code Online (Sandbox Code Playgroud)

但函数本身永远不会被读取:

func faxButtonPressed() {

        var indexToInsert = 0

        for forIndex in 0..<sectionsData.count {
            // render the tick mark each minute (60 times)
            if (sectionsData[forIndex] == "addFaxHeadline") {
                indexToInsert = forIndex + 1
            }

        }


        sectionsData.insert("addNewFax", at: indexToInsert)
        mainTableView.reloadData()
    }
Run Code Online (Sandbox Code Playgroud)

Win*_*ngs 5

你需要打电话:

cell.delegate = self
Run Code Online (Sandbox Code Playgroud)

在你的cellForRowAtIndex方法

这是在协议和代理中忘记调用委托的常见错误.

这里有几个例子,你可以检查所有丢失的是调用委托: -

Swift委托在没有segue的两个VC之间

根据控制台的说法,代表似乎没有工作

如何在swift中从导航控制器中解除后呈现另一个视图控制器?