为什么cellForRowAtIndex根本不运行?

时间:2015-12-01 08:19:42

标签: ios swift uitableview

我已将TableView添加到我的控制器并创建了自定义UITableViewCell。后来,我试图运行这段代码:

Dim dt = DateTime.ParseExact(youroriginaldate, "yyyy-MM-dd HH:mm:ss", Nothing)
CStr(dt.ToString("dd-MMMM"))

但是我没有在日志func tableView(educationTableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> educationCell { let cell:educationCell = educationTableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! educationCell print("TableView runs") return cell } 中获取我的打印件。我不明白发生了什么以及它为什么不运行。谁知道,为什么会出现这个问题?

我在SO中读到了其他答案,但没有人帮助= /

3 个答案:

答案 0 :(得分:3)

需要numberOfRowsInSection的返回值大于0

答案 1 :(得分:1)

确保您已为控制器实施了正确的数据源和代理行数大于0

import UIKit

class MyViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

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

    @IBOutlet var tableView: UITableView! //hook this to your storyboard tableview

    // MARK: - Controller life cycle stack
    override func viewDidLoad() {
        super.viewDidLoad()

        //confirm table's delegate and data source programmatically
        tableView.delegate = self;
        tableView.dataSource = self;

    }

    //table view delegate and data source methods
    func tableView(tableView:UITableView, numberOfRowsInSection section:Int) -> Int
    {
        //number of rows must be greater then 0 to get called "CellForRowAtIndex"
        return self.items.count;
    }

    func  tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
    {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell") as! CraditCardCell
        return cell
    }

    func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
    {
        print("You selected cell");
    }
}

答案 2 :(得分:0)

一个原因可能是因为您将返回类型修改为educationCell,即标准UITableViewCell的instdead。尝试改变它。