2017-07-11 38 views
-1

這裏是我的協議定義。代表不工作?

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

然後在我的自定義單元格類創建弱引用和我打電話委託功能

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

然後在我的UITableViewController類

我已經寫了這一切在一個單一的文件。我在這裏做錯了什麼?有人能幫我解決這個問題嗎?提前致謝。

+0

你的電池的代表設置爲你的'ProductTableViewController'實例? – ozgur

+0

是的我viewdidload()我做到了。檢查我更新的問題。 –

回答

1

您不應在viewDidLoad中設置代理人。這隻會設置您剛剛創建的單元格的代表,而不是表格視圖中的所有單元格。

你應該在celForRowAtIndexPath做到這一點:

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

謝謝掃地機。 –