如何连接故事板中的原型单元?

Posted

技术标签:

【中文标题】如何连接故事板中的原型单元?【英文标题】:How to connect a prototype cell in a storyboard? 【发布时间】:2014-11-21 16:41:09 【问题描述】:

我在情节提要中创建了一个表格视图,以及一个自定义原型单元格。我已经在情节提要中设置了单元格标识符,并试图将其出列并得到:

无法将标识符为 TTEntry 的单元格出列 - 必须为标识符注册一个 nib 或一个类,或者连接情节提要中的原型单元格

我在情节提要的 TableCell 属性中看不到任何其他东西可以与之链接。我只是不知道消息是什么。

有人能指出正确的方向吗?

谢谢!

螺丝胶带。

【问题讨论】:

我们能看到出列单元格的代码吗? 【参考方案1】:

来自故事板:

    在属性检查器中设置重用标识符 如 Jignesh Agola 所述,在情节提要中添加 CustomCell 类

来自代码(如发布的柠檬酸橙柚):

[self.tableView registerClass:<Your UITableViewCell subclass> forCellReuseIdentifier:<Your identifier>]

【讨论】:

您在将单元格出列时错过了一步,将其转换为您的自定义类保护 let cell = tableView.dequeueReusableCell(withIdentifier: kCellReuseId, for: indexPath) as? YouCustomCellClass【参考方案2】:

在情节提要中添加 CustomCell 类

【讨论】:

【参考方案3】:

如果您使用的是搜索显示控制器

[self.searchDisplayController.searchResultsTableView registerClass:[YourClass class] forCellReuseIdentifier:@"yourCellIdentifier"];

【讨论】:

【参考方案4】:

您应该能够 1) 添加 Jignesh 提到的 CustomCell 类,或 2) 在 UITableViewController 的 viewDidLoad 中以编程方式注册 nib:

let nib = UINib(nibName: "yourCellIdentifier", bundle: nil)
self.tableView.register(nib, forCellReuseIdentifier:"yourCellIdentifier")

【讨论】:

谢谢!我已经尝试过该代码 - 已将代码转换为目标 C,但我仍然收到相同的错误消息。 ` UINib *nib = [UINib nibWithNibName:@"TTEntry" bundle:nil]; [self.tableView registerNib:nib forCellReuseIdentifier:@"TTEntry"]; ` 您是否将该代码放入 viewDidLoad 中(或在调用具有该标识符的单元格出列之前的其他位置)?【参考方案5】:

你可以添加

tableview.register(YourClass.self, forCellReuseIdentifier: "YourIdentifier")

如果您在没有故事板、xib 等的情况下编写代码。

【讨论】:

以上是关于如何连接故事板中的原型单元?的主要内容,如果未能解决你的问题,请参考以下文章

故事板中 tableviewController 中的原型 tableview 单元格

故事板中tableviewController中的原型tableview单元格

如何更新动态生成的故事板中的自定义特定 UITableview 单元格?

访问故事板中 UITableViewController 中定义的原型单元,以便在代码中实例化该类

XCode故事板中的自定义静态表格单元格?

IOS开发。如何通过 segue 连接不同故事板中的两个场景