3

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

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

然后我创建了另外两个视图(男孩和女孩),我希望能够将它们放在基础视图后面,以便背景颜色与 ImageView 中的一些图形不同。我将在 IB 中创建的视图命名为“男孩”和“女孩”...

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

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

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

@巴勃罗圣克鲁斯

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

4

3 回答 3

2

您可以通过为其标记属性分配一个值以编程方式访问 UIView,该属性可以在检查器的第一个选项卡上的 IB 中设置(命令 1)

标签值默认为零,因此如果您想专门访问它,请将其设为非零且唯一。例如 100,我将在下面的示例代码中使用

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

UIView *aView = [self.view viewWithTag:100];
于 2009-07-23T12:14:17.677 回答
2

在 Xcode 中的 App Controller 类中添加 IBOutlets,然后在 IB 中将它们从 Inspector 中的连接选项卡链接到对象。

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

Xcode 中的代码应如下所示:

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


@end
于 2009-04-14T22:33:21.313 回答
0

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

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

假设您的 NIB 文件名为 BoyViewController 和 GirlViewController。有了这些实例,您可以做任何您需要做的事情。IE,将它们添加到父视图(在父视图上带有 addSubView 消息)。

于 2009-04-14T22:10:48.060 回答