2014-10-31 44 views
0

我想填充我的表格視圖,但我的委託方法沒有被調用。UITableView不調用我的單元格代理

我已將我的表格視圖綁定到我的控制器。

enter image description here

我已經實現的協議以及委託方法,如下所示。

class TrendsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet var listingTable: UITableView! 

    var items: [String] = ["We", "Heart", "Swift"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     listingTable.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell") 
    } 

    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     println("Counting") 
     return self.items.count 
    } 

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
     println("Setting a cell") 

     var cell = self.listingTable.dequeueReusableCellWithIdentifier("cell") as UITableViewCell 
     cell.textLabel.text = self.items[indexPath.row] 

     return cell 
    } 

當我渲染視圖時,我得到以下輸出。

Counting 
Counting 

這意味着計數至少工作,但爲什麼不調用單元構造函數?我錯過了什麼?

+0

你是否實現了'numberOfSectionsInTableView(_ :)'? – rintaro 2014-10-31 13:04:00

+0

我試過了,但它似乎也沒有做到。 :( – MartinElvar 2014-10-31 13:06:20

+1

也許,你的tableView的高度或寬度是0.你可以使用'println(tableView.frame)'檢查出它嗎?故事板中的任何自動佈局錯誤? – rintaro 2014-10-31 13:15:55

回答

0

UITableView的高度或寬度爲0時,它永遠不會調用tableView(_:cellForRowAtIndexPath:)委託方法。

您應該已經被警告由Interface Builder是這樣的:

screenshot

點擊它,並解決這些問題。