故事板 UITableViewCell 无法加载名称为 bundle 的 nib...以编程方式加载时

Storyboard UITableViewCell could not load nib in bundle with name... when loaded programmatically

我有一个 Viewcontroller 场景(故事板),其中有一个 UITableView 和一个名为 FooUITableViewCellFoo 从故事板加载时加载正常,但我需要以编程方式从另一个 UITableView 加载它。

我正在像这样注册单元格(起初我尝试没有 UINibIBOutletsnil):

override func viewDidLoad() {
    super.viewDidLoad()        
    tableView.register(UINib(nibName: "Foo", bundle: nil), forCellReuseIdentifier: "bar")
}

然后像这样加载它:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "bar", for: indexPath) as! Foo
    return cell
}

这不起作用,returns 错误: 由于未捕获的异常 'NSInternalInconsistencyException' 而终止应用程序,原因:“无法在捆绑包中加载 NIB:'NSBundle <[path]> (loaded)' 名称为 'Foo'”

我确定的事情:

您可能想为您的单元格创建一个单独的 nib 文件,然后将其注册到您的 table 视图,就像您在上面所做的那样。