我会尽量做到尽可能短。
我编写了一个自定义类,它使用几个IBOutlet属性扩展了UIView,并且它与这些IBOutlet链接的XIB相关联。
然后,我想要将该类嵌入到其他一些XIB(例如,表格单元格)中,然后让它工作。
似乎当我在新的XIB中嵌入该自定义类时,它无法识别与之关联的原始XIB,因此它要求我将IBOutlet重置为新XIB上的接口元素。这太蹩脚了。
有没有人明白我想做什么并且有一个好的方法?
答案 0 :(得分:8)
以下是我设法完成这项工作的方法:
在Interface Builder中
打开你的外笔尖并执行此操作:
在Xcode中
在外部视图控制器的 viewDidLoad 方法中,添加以下两行:
[self.innerView addSubview:self.innerViewController.view];
self.innerViewController.view.frame = CGRectMake(0, 0, self.innerView.frame.size.width, self.innerView.frame.size.height);
如果您的外部笔尖是自定义UITableViewCell,请将这些行放在 awakeFromNib 方法中。
Build&运行!
答案 1 :(得分:1)
我假设你只是简单地将UIViews放在一个nib中供UIViewController使用,它纯粹是在代码中。 Apple称之为detached nib file。
按照我链接的指南了解详情以及如何使其发挥作用的示例。
关于在Interface Builder中将视图嵌入到另一个视图中,您需要add a UIView element from the Library进入父视图,set its class in the Inspector。设置嵌入视图的类后,您的IBOutlet应该是可见的。