使用Xib将UIView添加到UIViewController

时间:2011-01-25 12:16:45

标签: uiview uiviewcontroller xib

以下是我要做的事情:

  1. 我有AViewController并且它是Xib,然后我在屏幕的一半添加UIView我将这个视图连接到B-UIView,B-UIView有自己的xib,我在那里进行设计。
  2. 换句话说,我有一个视图控制器,它的视图成为“主视图”,因为我添加了其他视图,它带有自己的xib。

    层次结构:

    1 ViewController UIView(xib)     2.B-UIView(有自己的xib)     3.C-UIView(有自己的xib)

    如果可能的话,这可能是怎么回事?

    非常感谢提前!

1 个答案:

答案 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];