我创建了一个XIB文件及其控制器来处理我的可重用自定义单元格:
并设置我XIB的类所有者:
class WallTableCell: UITableViewCell {
func setupCell() {
setupLabels()
}
func setupLabels() {
self.title.text = "Sample Title"
self.postDescriptionLabel.text = "Sample Description"
}
}
I、 目前有2个故事板,其中第一个故事板使用
NavigationView
,第二个包含
TabBarView
其中第一个项目具有
TableView
.
在这里,我添加了一个
UITableViewCell
在故事板中
单元格的类设置为:
控制器的类设置为:
我在哪里注册我的Nib并尝试在
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