【问题标题】:Add a UIView to a UIViewController with Xib使用 Xib 将 UIView 添加到 UIViewController
【发布时间】:2011-06-15 04:02:19
【问题描述】:
这是我想要做的:
- 我有
AViewController,它是 Xib,然后我添加了一个 UIView 一半的屏幕,我将此视图连接到 B-UIView,B-UIView 有自己的 xib,我在其中进行设计。
换句话说,我有一个视图控制器,它的视图成为“主视图”,因为我向它添加了其他带有自己的 xib 的视图。
层次结构:
1 ViewController UIView (xib)
2.B-UIView(自带xib)
3.C-UIView(自带xib)
如果可以的话,这可能吗?
提前非常感谢!
【问题讨论】:
标签:
uiview
uiviewcontroller
xib
【解决方案1】:
是的,你绝对可以做到这一点,而且一点也不难!
事实上,这是在 Interface Builder 中设计某些东西的一种非常常见的方式。然后,您可以使用loadNibNamed 以编程方式加载您的自定义 Xib 文件。例如:
[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];
Apple 的文档在“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];