无法用标识符CustomCellName脱离单元格



我已经看到了很多有关此错误的帖子,但是提供的解决方案对我来说没有。我通过故事板创建了表,并使用了一个自定义的原型单元格创建了一个类。我将标识符设置在单元格上。

单元格式检查员:https://i.stack.imgur.com/ebkja.png

单元格属性检查器:https://i.stack.imgur.com/dirxu.png

故事板表:https://i.stack.imgur.com/uakes.png

dequeue单元格的代码:

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "FNListViewCell",for: indexPath) as? FNListViewCell
     //filling cell data
    // Configure the cell...
    return cell!
}

编辑:我尝试了两种不同的事情来使它起作用,这两者都摆脱了错误,但在页面出现时会导致表格出现。

1(我尝试使用:

在表上注册该单元格
self.tableView.register(FNListViewCell.self, forCellReuseIdentifier: "FNListViewCell")

2(我将Dequeue语句更改为

let cell = tableView.dequeueReusableCell(withIdentifier: "FNListViewCell") as? FNListViewCell

两者都导致细胞对象的UILABEL元素为空,但是在初始化这些和设置值后,我得到了一个空表。

如果您为表视图单元格创建了一个单独的XIB,则为其创建了一个自定义类,则必须在使用它之前进行注册。如果您在视图控制器中使用表视图并为您的表视图带有插座,请在ViewDidload((中添加此行。

tableView.register(UINib.init(nibName: "NameOfYourClass", bundle: nil), forCellReuseIdentifier: "YourIdentifier")

我找到了问题和解决方案。我是通过编程模态使用

呈现表视图的
let ModalController = FileNoteListTableViewController()
self.present(ModalController,animated: true,completion: nil)

我将其更改为使用故事板设置中定义的segue作为现场,而现在的Dequeue正在正常工作。我猜这与控制器手动执行时未正确初始化的控制器有关。

最新更新