我有一个带控制器的主视图和两个带有自己的xib的独立视图控制器。
类似
@interface MainViewController : UIViewController
{
FirstViewController* firstController;
SecondViewController* secondController;
}
我想拥有FirstViewController.xib和SecondViewController.xib,以便我可以在那里放置任何我想要的东西。
现在在MainViewController.xib中我希望能够为FirstViewController和SecondViewController定义帧。
唯一的方法是进入MainViewController的viewDidLoad
方法并手动将控制器的相应视图添加为子视图?但是,我如何定义尺寸???
答案 0 :(得分:2)
要记住的一件事是UIViewController
(及其任何子类)是Controller
类(在模型 - 视图 - 控制器意义上),因此不被明确地视为视图。 UIViewController
然而拥有一个视图,这就是你想要的。
你会做什么,在你的MainViewController
视图中(你使用InterfaceBuilder进行布局并保存为xib文件)你可以创建两个临时虚拟UIView
作为占位符,以及在MainViewController类中为它们添加插座。在IB中连接这些插座。您还需要在MainViewController标头中保留First和SecondViewController的实例变量(这不是明确需要的,但您可能想要依赖这些人)。
然后,在-viewDidLoad
的{{1}}中,您将要实例化First和SecondViewController(MainViewController
,同样为第二个),然后替换您的虚拟子视图(您的那些)在IB中创建为占位符),如firstController = [[FirstViewController alloc] initWithNibName:@"myName.xib" bundle:nil];
)。
那应该是你。您可能还想将dummyViews的autoresizingMask与控制器视图的autoresizingMask交换。