簡體   English   中英

從UITableViewCell委托不起作用

[英]Delegate from UITableViewCell doesn't work

我有一個包含按鈕的自定義UITableViewCell 單擊按鈕后,應在UITableView所在的ViewController中執行某些操作(在這種情況下,刪除單元格)。

我嘗試使用delegate

在我的自定義單元格中

protocol CellDeleterDelegate: class {

    func deleteIngredAt(index:IndexPath)
    func deleteReceiptAt(index:Int)
    func reloadData()

}

weak var delegate: CellDeleterDelegate?

else {
            print("before Delete")
            delegate?.deleteIngredAt(index: indexP)
            print("after Delete")
            delegate?.reloadData()
            print(indexP)
        }

調用所需的函數(在其他情況下,我從作為表數據源的數組中刪除數據)

在我的ViewController我有以下代碼:

class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, CellDeleterDelegate{

[...]

func deleteIngredAt(index: IndexPath) {
        print("reached DeleteIngred")

        UIView.setAnimationsEnabled(true)
        self.tableView.deleteRows(at: [index], with: .automatic)

    }

    func deleteReceiptAt(index:Int) {

        print("reached DeleteIngred")

        let indices: IndexSet = [index]
        UIView.setAnimationsEnabled(true)
        tableView.deleteSections(indices, with:  UITableView.RowAnimation.fade)

    }

    func reloadData() {
        print("reload reached")
        tableView.reloadData()
    }

但是我的ViewController中的任何函數都沒有被調用,我也不知道為什么。 我之前在另一個項目中使用過它,並且效果很好。

我想你忘了打電話給cell.delegate = self

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM