Ios 无法将XIB加载到可重用的TableViewCell中
我创建了一个XIB文件及其控制器来处理可重用的自定义单元格: 并设置我的XIB的类所有者: 一、 目前有两个故事板,其中第一个引导到第二个,使用Ios 无法将XIB加载到可重用的TableViewCell中,ios,swift,uitableview,storyboard,xib,Ios,Swift,Uitableview,Storyboard,Xib,我创建了一个XIB文件及其控制器来处理可重用的自定义单元格: 并设置我的XIB的类所有者: 一、 目前有两个故事板,其中第一个引导到第二个,使用导航视图,第二个包含选项卡视图,其中第一个项目具有表视图 在这里,我在情节提要中添加了一个UITableViewCell 单元格的类别设置为: 控制器的类设置为: 在这里,我注册我的Nib并尝试在cellForRowAt方法上使用它: class WallViewController: UIViewController { @IBOut
导航视图
,第二个包含选项卡视图
,其中第一个项目具有表视图
在这里,我在情节提要中添加了一个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"
线程1:异常:“[setValue:forUndefinedKey:]:此类不符合key postDescriptionLabel的键值编码”
我相信这是因为故事板中的
TableViewCell
是空的,而不是包含WallTableCell
的组件。如果需要,请确保设置数据源并委派
messagesTable.register(nib, forCellReuseIdentifier: "wallCell")
messagesTable.delegate = self
messagesTable.dataSource = self
虽然我没有添加我的
messagesTable
的数据源(这是Shu Khan建议的),但后来我的错误解决方案是,我的参考出口指向“文件的所有者”,而不是我的文件出口
因此,在选择自定义的TableViewCell
(不是原型)时,应:
出于某种原因,它不是右边的“标题标签”,而是“文件的所有者”
原型单元格不应包含任何附加到它的类。有一个错误:
线程1:异常:“[setValue:ForUndelinedKey:]:该类不符合key postDescriptionLabel的键值编码”
,因此,您可能需要解除postDescriptionLabel
的绑定,并再次将其从xib文件绑定到swift文件。对于您的wallCell
它是问题中的第一个代码,它只是设置标签的文本self.title.text=“Sample title”
和self.postDescriptionLabel.text=“示例说明”
@HarryJI像您一样添加了两行,但现在我不断遇到另一个错误,我认为这与我的故事板中的TableViewCell是空的而不是其中的组件有关。我将在编辑问题时发布错误
messagesTable.register(nib, forCellReuseIdentifier: "wallCell")
messagesTable.delegate = self
messagesTable.dataSource = self