从Xib加载的UITableViewCell始终具有Nil值

问题描述 投票:0回答:1

我已经在这个问题上搜索了几个小时,但是找不到任何有效的方法。

这是我的表格视图代码:

import UIKit
import Firebase

class HomeViewController: UITableViewController {

    @IBOutlet weak var labelCell: IconAndTitleTableViewCell!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.tableView.register(UINib(nibName: "IconAndTitleTableViewCell", bundle: nil), forCellReuseIdentifier: "iconAndLabelCell")

        labelCell.titleView.text = "Test"    
    }        
}

这是表格视图:

table view screenshot

这里是Xib文件:

xib file

但我仍然收到错误消息:

线程1:致命错误:意外地发现nil,同时隐式展开一个可选值

[尝试设置labelCell时。

其字段为零。但是为什么他们没有?我已经在表中清楚地注册了它,并关注StackOverflow上的所有帖子。

任何帮助都会很棒。

swift uitableview xib
1个回答
0
投票

您无法将像单元格这样的可重用元素设为IBOutlet。您需要:

1)符合UITableViewDataSource委托方法并实现其所有必需的方法例如:

func numberOfSections(in tableView: UITableView) -> Int {
    return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "", for: indexPath)
    return cell
}

2)您可以在cellForRowAt方法中访问您的单元格

© www.soinside.com 2019 - 2024. All rights reserved.