以下是我要做的事情:
AViewController
并且它是Xib,然后我在屏幕的一半添加UIView
我将这个视图连接到B-UIView,B-UIView有自己的xib,我在那里进行设计。 换句话说,我有一个视图控制器,它的视图成为“主视图”,因为我添加了其他视图,它带有自己的xib。
层次结构:
1 ViewController
UIView(xib)
2.B-UIView(有自己的xib)
3.C-UIView(有自己的xib)
如果可能的话,这可能是怎么回事?
非常感谢提前!
答案 0 :(得分:1)
是的,你绝对可以做到这一点并不困难!
事实上,这是在Interface Builder中设计内容的一种非常常见的方式。然后,您可以使用loadNibNamed
以编程方式加载自定义Xib文件。例如:
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
Apple的文档在“Table View Programming Guide for iOS”中讨论了这个问题。
虽然他们的示例是关于创建自定义表格单元格,但相同的规则适用于任何视图。仔细查看标题为Loading Custom Table-View Cells From Nib Files的部分。
在该示例中他们没有做的一件事是加载顶级视图。 loadNibNamed
会返回一个数组,因此要获得您所追求的顶级视图,您还应该这样做:
MyCustomView *myCustomView = [myNibsArray objectAtIndex:0];
因此,您的代码将如下所示:
NSArray *myNibsArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];
MyCustomView *myCustomView = [myNibsArray objectAtIndex:0];