在官方开发人员指南(以及其他类似指南)中,它提到您需要设置单元格的自定义类属性才能建立IBOutlet连接。这个自定义类只是一个客观的c类,在@properties上有IBOutlet标记。我正在努力理解的是,单元格的自定义类属性与XIB的文件所有者的不同之处。从我的实验中,我可以将文件所有者留空,只要在单元格上设置自定义类,所有连接仍然有效(我单击单元格并转到“身份检查器”并设置单元格的自定义类) 。我认为文件所有者是UI视图可以与之交互的唯一内容。
ctrl + f“使用自定义单元格内容的插座”来到文档中的位置。
答案 0 :(得分:6)
我有同样的问题,并进行了一些实验。根据我的观点,Custom Class
属性适用于XIB
中的每个视图。即如果你的XIB
具有多个UI对象的UI设计,则每个UI对象都可以有一个单独的自定义类。自定义类也必须是您在XIB
中的UIView对象的父类的子类。例如,对于cell
,自定义类必须是UITableViewCell
。
另一方面File Owner
只有一个XIB
。它可以是 ANY 类(从我所看到的)。
以我的情况为例,我XIB
的自定义UITableViewCell
包含文本字段和一些标签。我使用单元格作为表格的标题视图(即在UITableView
对象中)。
在我的情况下,我为<{1}}创建了 NOT 自定义类。我刚刚将单元格的文件所有者设为XIB
(管理我的tableview),并将我的文本字段和标签连接到UITableViewController
类中的属性。这对我有用,因为我只有 ONE 实例我的自定义UITableViewController
(它是整个表的标题,并且只有一个标题)。
答案 1 :(得分:0)
文件的所有者只是Interface Builder提供的一种方便的方式,用于引用运行时实例化对象,该对象通常是与主视图关联的UIViewController
。
也就是说,你可以引用你想要的许多其他对象,特别是如果你有一个视图层次结构或视图控制器。