我创建了一个ChildViewController类,然后创建了一个使用该类的nib。
然后我创建了一个BaseView,其中包含一些按钮,以及一些我将以编程方式更改的文本。
然后我创建了另外两个视图(男孩和女孩),我希望能够放在基本视图后面,以便背景颜色与ImageView中的一些图形不同。我已将我在IB'Boy'和'Girl'中创建的观点命名为......
但是当我回到我正在调用ChildViewController的代码时,我不知道如何访问我创建的视图,因此我可以调用insertSubView。我需要在代码中实例化它们吗? (也许在ViewDidLoad中?)nib是否在加载时创建实例?
我对如何处理单个ViewController的多个视图感到困惑
编辑=================
@Pablo Santa Cruz
你的答案假定我有两个笔尖和两个视图控制器(每个视图一个)。我想知道我是否可以使用一个笔尖和一个控制器,并在UIViews中加载。创建另一个笔尖和控制器似乎很傻,当所有想要做的就是改变背景颜色和一些图形。我不能以编程方式将UIViews加载到UIViewController中吗?
答案 0 :(得分:2)
在Xcode的App Controller类中添加IBOutlets,然后在IB(按住Ctrl键单击或右键单击)中将它们从Inspector中的连接选项卡链接到对象。
然后您就可以向对象发送方法调用。
Xcode中的代码应如下所示:
@interface AppController : NSObject
{
IBOutlet Girl girlIvarName1;
IBOutlet Boy boyIvarName2;
}
@end
答案 1 :(得分:2)
您可以通过为其标记属性指定值来以编程方式访问UIView,该属性可以在检查器的第一个选项卡上的IB中设置(命令1)
标记值默认为零,因此如果您想要专门访问它,请将其设置为非零且唯一。例如100,我将在下面的示例代码中使用
设置标记后,您可以使用UIViewController中的以下代码访问视图,该代码是包含标记视图的NIB的initWithNibName
UIView *aView = [self.view viewWithTag:100];
答案 2 :(得分:0)
您可以使用以下代码获取IBuilder视图的实例:
boyViewController = [[BoyViewController alloc] initWithNibName:@"BoyViewController" bundle:nil];
girlViewController = [[GirlViewController alloc] initWithNibName:@"GirlViewController" bundle:nil];
假设您的NIB文件名是BoyViewController和GirlViewController。在这些情况下,您可以做任何您需要的事情。 I.E.,将它们添加到父视图中(在父视图上添加addSubView消息)。