为什么我不能用UIView
创建一个笔尖?我似乎需要使用UIViewController
创建它。我只想用Interface Builder创建一个视图,我可以在多个不同的视图控制器中使用它。
答案 0 :(得分:0)
实际上,你可以 - 唯一缺少的是便利构造函数。就个人而言,我使用这样的代码片段:
+ (instancetype)instanceFromNib
{
Class ownClass = self;
id ret = nil;
NSArray* objects = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(ownClass) owner:nil options:nil];
for (id obj in objects) {
if ([obj isKindOfClass:ownClass])
ret = obj;
}
return ret;
}
唯一的限制是类nib需要在视图类之后命名并包含该类的对象(最好只包含一个)。
如果你想拥有一个从其他笔尖自动加载的视图笔尖,那么它会很棘手,但也是可能的(根据你想要做的努力)。在最简单的版本中,只需覆盖initWithCoder,其代码类似于我粘贴的代码(如果您需要保留其他笔尖中的属性,则会开始棘手的部分)。
此问题也可能在SO上得到解答。