2017-07-11 6 views
-1

ここは私のプロトコル定義です。参加者は機能していませんか?

protocol ActivityIndicatorDelegate: class { 
    func showIndicator() 
    func hideIndicator() 
    func barcodeError() 
    func categoryError() 
    func descError() 
    func reasonError() 
    func costError() 
} 

はその後、私のカスタムセルクラスに私は弱い参照を作成して、私は一つのファイルにすべてのこれらを書かれている

私のUITableViewControllerクラスに続いて

class ProductTableViewCell: UITableViewCell { 
    weak var indicatorDelegate: ActivityIndicatorDelegate? 
    @IBAction func stockUpdate(_ sender: Any) { 
     indicatorDelegate?.categoryError() 
    } 
} 

デリゲート関数を呼び出します。私はここで間違っていますか?この問題を解決するのに役立つ人もいます。前もって感謝します。

+0

あなたは 'ProductTableViewController'インスタンスにセルのデリゲートを設定したのですか? – ozgur

+0

はい私はそれをしましたviewdidload()。更新された質問を確認してください。 –

答えて

1

viewDidLoadに代理人を設定しないでください。これは、テーブルビューのすべてのセルではなく、作成したばかりのセルのデリゲートのみを設定します。

あなたはcelForRowAtIndexPathでこれを実行する必要があります。

let cell = tableView.dequeue... 
// configure the cell... 
cell.indicatorDelegate = self 
+0

ありがとうスイーパー。 –

関連する問題