【发布时间】:2012-02-20 21:25:35
【问题描述】:
我有一个自定义的UITableViewCell,我正在使用instantiateWithOwner:(id)owner options:(NSDictionary *)options 从一个笔尖实例化它。当笔尖被实例化时,我将它保存到我的视图控制器中定义的 IBOutlet 中,该控制器在 .xib 文件中设置为文件的所有者。一切都很顺利。
我现在遇到了在多个视图控制器中使用这个自定义单元格的需要。我希望我可以定义一个协议(例如 CustomCellOwner),多个视图控制器可以实现该协议。该协议将简单地定义用于在实例化时引用单元格的 IBOutlet。
理想情况下,我想将“文件的所有者”设置为:
id <CustomCellOwner>
在界面生成器中。
但是,Interface Builder 似乎只允许您将文件的所有者设置为已知类,而不是实现协议的 id?
有没有办法做到这一点?或者,更简单的方法来解决这个问题?
谢谢!
【问题讨论】:
-
完整的旁注,你能指出一些你如何做到这一点的指南或示例,因为它听起来很棒,目前我必须循环浏览笔尖才能找到合适的视图以在我的自定义单元格。这并不理想。听起来你有一个很好的解决方案。
-
您能否详细说明“它似乎只允许您将文件的所有者设置为已知类,而不是实现协议的 id?”是界面生成器的意思吗?
-
@rooftop 是的,在这种情况下,“it”指的是 Interface Builder。编辑/配置文件的所有者对象时,有一个“类”选项,可让您选择文件所有者的类。 IB 中的那个框不允许我输入 id
作为类型,我想知道这是否可能。谢谢!
标签: objective-c ios interface-builder