Objective c 访问在Interface Builder中创建的视图

Objective c 访问在Interface Builder中创建的视图,objective-c,uiview,uiviewcontroller,Objective C,Uiview,Uiviewcontroller,我创建了一个ChildViewController类,然后创建了一个使用该类的nib 然后我创建了一个BaseView,其中包括一些按钮和一些文本,我将以编程方式对其进行更改 然后,我又创建了两个视图(男孩和女孩),我希望能够放置在baseview后面,这样背景颜色与ImageView中的一些图形不同。我已经将我在IB中创建的视图命名为“男孩”和“女孩” 但是当我回到调用ChildViewController的代码时,我不确定如何访问我创建的视图,以便调用insertSubView。我需要在代码

我创建了一个ChildViewController类,然后创建了一个使用该类的nib

然后我创建了一个BaseView,其中包括一些按钮和一些文本,我将以编程方式对其进行更改

然后,我又创建了两个视图(男孩和女孩),我希望能够放置在baseview后面,这样背景颜色与ImageView中的一些图形不同。我已经将我在IB中创建的视图命名为“男孩”和“女孩”

但是当我回到调用ChildViewController的代码时,我不确定如何访问我创建的视图,以便调用insertSubView。我需要在代码中实例化它们吗?(可能在ViewDidLoad中?)nib是否在加载时创建实例

我对如何为单个ViewController处理多个视图感到困惑

编辑=================

@巴勃罗·圣克鲁斯


您的答案假设我有两个NIB和两个视图控制器(每个视图一个)。我想知道我是否可以使用一个nib和一个控制器,并在UIView中加载。创建另一个nib和控制器似乎很愚蠢,而您只想更改背景颜色和一些图形。我不能以编程方式将UIViews加载到UIViewController中吗

您可以使用以下代码获取IBuilder视图的实例:

boyViewController = [[BoyViewController alloc] initWithNibName:@"BoyViewController" bundle:nil];
girlViewController = [[GirlViewController alloc] initWithNibName:@"GirlViewController" bundle:nil];

假设您的NIB文件名是BoyViewController和GirlViewController。在这些情况下,您可以做任何需要做的事情。也就是说,将它们添加到父视图中(父视图上有addSubView消息)。

在Xcode中的App Controller类中添加IBOutlets,然后从Inspector中的connections选项卡将它们链接到对象的IB中(ctrl单击或右键单击)

然后您将能够向对象发送方法调用

Xcode中的代码应如下所示:

@interface AppController : NSObject
{
   IBOutlet Girl girlIvarName1;
   IBOutlet Boy boyIvarName2;
}


@end

通过为UIView的tag属性指定一个值,可以通过编程方式访问UIView,该属性可以在inspector的第一个选项卡上的IB中设置(命令1)

标记值默认为零,因此如果要专门访问它,请将其设置为非零且唯一。e、 g.100,我将在下面的示例代码中使用它

设置标记后,您可以在UIViewController中使用以下代码访问视图,该代码是包含标记视图的NIB的initWithNibName

UIView *aView = [self.view viewWithTag:100];

是的,你也可以这样做。