如何将IBOutlet从UITableViewController直接连接到自定义单元格?

时间:2011-11-02 23:20:06

标签: ios5 uitableview storyboard iboutlet

几天前,我观看了视频教程,该教程解释了如何在UITableViewController中使用自定义单元格。我已经了解到我可以直接在界面构建器中准备自定义单元格,所以我做了以下操作:

我创建了一个UITableViewController并连接一个由IBOutlet(UILabel)组成的自定义类。之后,我切换了我的故事板并用UILabel准备了我的自定义单元格。最后,我将标签从UITableViewController直接连接到我的自定义单元格。

发生以下情况:

Couldn't compile connection: <IBCocoaTouchOutletConnection:0x400724860  <IBProxyObject: 0x4007872c0> => productLabel => <IBUIImageView: 0x401080220>>

是不是可以直接连接?在WWDC 2011部分(会话#309)的教程视频中,他们完全按照我的方式行事。但是有一个钩子:他们没有显示背后的代码,他们只是像我上面解释的那样连接它。

为了更好地理解,我添加了一个屏幕截图,显示了我连接的内容: enter image description here

2 个答案:

答案 0 :(得分:4)

我在this question中遇到了同样的问题。正如我的问题的回答者所说,问题在于这里的单元格是原型单元格。单元格元素和UITableViewController之间的连接适用于具有静态单元格的表格视图,因为它们是在启动时创建的,但它对原型单元格没有意义,因为它们中的许多可能会被创建...并且它们不会#39; t存在直到调用cellForRowAtIndexPath。 (这是一个非常糟糕的错误消息,Xcode可能不应该让你像这样进行非法连接。)

答案 1 :(得分:3)

实际上,

我看过这个视频并没有按照你建议的方式连接。它们从细胞连接到细胞中的UILabel。换句话说,它们具有UITableViewCell的子类,并在自定义对象中连接这些IBOutlet。在它的基本形式中,您可以创建一个自定义单元类,只需声明接口并合成属性,您应该很高兴。只需确保在故事板中正确设置标识符和自定义类。

希望这有帮助。