从 NIB 加载的 UITableViewCells 始终为零

Posted

技术标签:

【中文标题】从 NIB 加载的 UITableViewCells 始终为零【英文标题】:UITableViewCells loaded from NIB always nil 【发布时间】:2010-04-20 15:59:08 【问题描述】:

我正在尝试使用 Apple 开发人员文档 here 中记录的 UITableViewController 创建一个简单的表单。

我正在尝试做的位于标题为“静态行内容的技术”的部分中

我创建了几个UITableViewCells 并将它们添加到我的笔尖,但是当我尝试访问它们以将它们添加到UITableView(在cellForRowAtIndexPath: 方法中)时,它们始终为空。

好像它们没有从笔尖正确加载。我已经双重/三重/四重检查了我的代码,以确保我完全按照文档中的详细说明进行操作,但没有运气。

我在这里遗漏了什么明显的东西吗?

【问题讨论】:

【参考方案1】:

您是否确定已在 nib 文件中连接了 IBOutlets?

在你的 ViewController.h 文件中你应该有:

IBOutlet UITableViewCell *specialCell1;
IBOutlet UITableViewCell *specialCell2;

然后这些中的每一个都应该“连接”到 nib 文件中的相应单元格。如果没有,它们将不存在!

【讨论】:

我知道了...它仍然无法正常工作。我刚刚尝试了一个非常简单的测试项目,它运行良好,所以我认为这与我如何创建父视图控制器有关。【参考方案2】:

想通了……

当我添加我的父视图控制器时,我使用的是简单的“init”。切换到“initWithNibName”解决了这个问题...

还在学习中... :)

【讨论】:

Graaaah 这些答案让我抓狂!这是我发现的第二个问题与我遇到的完全相同的问题,这是第二个问题,以“没关系,找到它”结束,完全缺乏我能理解的解释。 :( 我知道我需要调用 initWithNibName somewhere,但我不明白在哪里以及如何。这是我的根控制器,所以它不能在上面的控制器中,显然不在任何 init 方法中,因为那也不起作用。对不起,我只是需要发泄一下。不期待答案。

以上是关于从 NIB 加载的 UITableViewCells 始终为零的主要内容,如果未能解决你的问题,请参考以下文章

从 nib 加载 UITableViewCell 子类时给出的类型错误

从 xib 加载 UITableViewCell 会导致加载 nib 但未设置视图出口

从 Nib 加载的 UITableViewCell 中的 UILabel 大小调整

从 NIB 加载自定义 UITableViewCell 问题

将自定义 UITableViewCell 从 nib 加载到 Swift 中的 UIViewController

如何使用 Swift 从 UITableViewCell 内的 NIB 调整自定义 UIView 的大小?