ios - 无法将 XIB 加载到可重用的 TableViewCell 中
问题描述
我创建了一个 XIB 文件及其控制器来处理我的可重用自定义单元:
并设置我的 XIB 的班级所有者:
class WallTableCell: UITableViewCell {
//Outlets
func setupCell() {
setupLabels()
}
func setupLabels() {
self.title.text = "Sample Title"
self.postDescriptionLabel.text = "Sample Description"
}
}
我,目前有 2 个故事板,第一个故事板使用 a 通向第二个故事板,第二个故事板NavigationView
包含 a TabBarView
,其中第一个项目具有TableView
.
在这里,我UITableViewCell
在情节提要中添加了一个
单元格的类设置为:
控制器的类设置为:
我在哪里注册我的笔尖并尝试在cellForRowAt
方法上使用它:
class WallViewController: UIViewController {
@IBOutlet weak var messagesTable: UITableView!
override func viewDidLoad() {
loadNibForCells()
}
func loadNibForCells() {
let nib = UINib(nibName: "WallTableCell", bundle: nil)
messagesTable.register(nib, forCellReuseIdentifier: "wallCell")
}
}
extension WallViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let wallCell = messagesTable.dequeueReusableCell(withIdentifier: "wallCell") as? WallTableCell else {
return UITableViewCell()
}
wallCell.setupCell()
return wallCell
}
}
但是,当我在模拟器中运行应用程序时,我仍然得到一个空单元格。
我应该怎么做才能在我的 tableViewCell 中显示我的自定义 XIB 视图?
在遵循@Sh_Khan 的回答并添加后:
messagesTable.delegate = self
messagesTable.dataSource = self
该应用程序因错误而崩溃:
Thread 1: Exception: "[<NSObject 0x600001628e70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key postDescriptionLabel"
我相信这与TableViewCell
故事板内部是空的而不是包含WallTableCell
解决方案
有一个错误:Thread 1: Exception: "[<NSObject 0x600001628e70> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key postDescriptionLabel"
,所以也许你需要解除绑定postDescriptionLabel
并将其从 xib 文件重新绑定到 swift 文件。
推荐阅读
- apache-spark - pyspark:将覆盖插入分区表但整个表被覆盖
- javascript - 尝试使用“推送”将对象条目创建为空数组。根本行不通
- android - 服务在片段中不起作用的倒计时计时器
- javascript - 如何在正则表达式中正确转义问号?
- apache-beam - 带有 CheckStopReadingFn 的 Beam Pipeline 在从 CheckStopReadingFn 返回 true 时抛出 IllegalStateException
- reactjs - react js中如何配置自动翻译?
- anaconda - 解决环境:使用 current_repodata.json 失败,将使用下一个 repodata 源重试。Conda 无法创建新环境
- node.js - Nodejs `fs.createReadStream` 作为承诺
- php - 从外部 highcharts 网站导出值
- bash - 在 bash 中,是否可以为命名为数组成员的变量赋值?