数据未显示在UITableView中

时间:2017-01-26 07:02:34

标签: ios swift uitableview swift3

class TableController: UIViewController {

    @IBOutlet var ListTable: UITableView!

    var list: [Dictionary<String, String>] = []

    override func viewDidLoad() {
        super.viewDidLoad()

        let ListTable = UITableView(frame: view.bounds)
        self.ListTable = ListTable

        ListTable.dataSource = self
        ListTable.delegate = self

        initList()
    }


    func initList() {
          // get list from firebase
            self.ListTable.reloadData()
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return list.count
    }

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

        let item = self.list[indexPath.row]
        let cellIdentifier = "ListCell"

        let cell = CustomCell(style: .default, reuseIdentifier: cellIdentifier)

        cell.foodLabel?.text = item["Banana"]

        return cell
    }
}

extension QueueController: UITableViewDataSource, UITableViewDelegate {

}

CustomCell类:

import UIKit

class CustomCell: UITableViewCell
{

    @IBOutlet weak var foodLabel: UILabel!

    override func awakeFromNib()
    {
        super.awakeFromNib()
    }
}

来自firebase的数据正确加载。在故事板上我有一个普通的视图控制器,里面嵌有一个UITableView。对于我的ListTable,我的IBOutlet喜欢该表视图。在表中有一个带有3个标签的单元格。该单元格具有标识符ListCell,其类别为CustomCell

编辑:没有错误,但我的数据没有显示。

3 个答案:

答案 0 :(得分:1)

也许尝试在viewDidLoad

中注册您的单元格
ListTable.register(UINib(nibName: "CustomCell", bundle: Bundle.main), forCellReuseIdentifier: "ListCell") //this is assuming that your nib is named "CustomCell"

此外,对于记录,您应该遵循驼峰式约定并命名您的UITableView listTable

答案 1 :(得分:1)

这是因为您的自定义单元格未正确出列。试试这个

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

        let cellIdentifier = "ListCell"
        var cell : ListCell? = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! ListCell?
        if (cell == nil) {

            cell = Bundle.main.loadNibNamed("ListCell", owner: nil, options: nil)?[0] as? ListCell
        }


        cell?.backgroundColor = UIColor.clear
        cell?.contentView.backgroundColor = UIColor.clear

        return cell!
    }

答案 2 :(得分:0)

你从来没有将TableView添加到你的视图......(或部分代码缺失)