表格视图项未显示

问题描述

我是iOS开发的新手。

我正在尝试使用UITableView在我的应用程序中显示项目列表,但这些项目没有显示

我的视图控制器:

class HistoryView: UIViewController,UITableViewDataSource,UITableViewDelegate {
    
    @IBOutlet weak var tableView: UITableView!
    
    let cellReuseIdentifier = "cell"
    
    @IBOutlet weak var noDataLabel: UILabel!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.register(HistoryTableViewCell.self,forCellReuseIdentifier: "historyCell")
        
        tableView.delegate = self
        tableView.dataSource = self
        self.noDataLabel.isHidden=true
    }
    
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    func tableView(_ tableView: UITableView,numberOfRowsInSection section: Int) -> Int {
        return 10
    }
    
    func tableView(_ tableView: UITableView,cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "historyCell") as! HistoryTableViewCell

        cell.nickname?.text = "name"
        
        return cell
    }

    
}

我的表格视图单元格:

class HistoryTableViewCell: UITableViewCell {
    
    @IBOutlet weak var nickname: UILabel!
    
    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool,animated: Bool) {
        super.setSelected(selected,animated: animated)

        // Configure the view for the selected state
    }

}

有什么建议吗?

解决方法

条件1:
如果您使用的是原型电池,则删除该行

tableView.register(HistoryTableViewCell.self,forCellReuseIdentifier:"historyCell")

并在情节提要中提供单元格标识符

enter image description here

条件2: 如果您使用的是xib文件,则按如下所示注册单元:-

tableView.register(UINib(nibName: "HistoryTableViewCell",bundle: nil),forCellReuseIdentifier: "historyCell")
,

您需要像这样注册单元格

tb.register(UINib(nibName: "HistoryTableViewCell",forCellReuseIdentifier: "historyCell")

我看到了@IBOutlet weak var nickname: UILabel!

class HistoryTableViewCell中。


对于表格单元格

dequeueReusableCellregister应该成对调用