有一个ViewController作为 Root View Controller ,我想添加一个TableViewController作为 subview Controller ,所有这2个 Controller 都是在Story Board中预先设计的。在 TableViewController Storyboard中,我将表格 View 设置为动态,添加 1 个自定义单元格并将其标识符设置为“cellReuse”。
在 Root View Controller 代码中,我将 TableViewController 添加为 Sub ViewController 并将其 TableView 添加为 Subview,例如:
var vcSubViewController:MyTableViewController
vcSubViewController = MyTableViewController()
vcSubViewController.delegate = self
self.addChildViewController(vcSubViewController)
self.addSubView(vcSubViewController.tableview)
在表格 View Controller 代码中:
tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
....
let cell = self.tableView.dequeueReusableCell(withIdentifier: "cellReuse", for: indexPath)
....
}
,运行时报错,提示找不到Reuse Identifier。
为了解决这个问题,我必须通过代码创建一个UITableViewCell,看来我在Story Board中设计的单元格还没有实现。我可以知道哪里出了问题吗?干杯!
最佳答案
EmilioPelaez 是对的,您需要从 Storyboard 或 XIB 实例化以包含 Storyboard/IB 中定义的标识符。
if let childVC = UIStoryboard(name: "Something", bundle: nil)
.instantiateViewController(withIdentifier: "MyTableViewController") as? MyTableViewController {
childVC.delegate = self
self.addChildViewController(childVC)
self.view.addSubView(childVC.tableview)
}
关于swift - 为什么预先识别的Cell在Sub viewcontroller中无效? iOS系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52501564/