好的,这就是我想要做的。在我的根视图控制器中,我有主视图,然后在该视图中,我有三个额外的视图。 (注意这是针对ipad的。)
这是我想要做的。当根视图加载时,我希望它也加载其他三个视图,并且都有自己的视图控制器。
这是我尝试过的。
在我的根控制器xib中,我放入了三个视图控制器并删除了它们的视图。然后,我将我在根控制器视图中布局的视图插入每个控制器视图槽。我还使用在rootcontroller.h中设置的视频控制器参考插入视图控制器参考。
在viewdidload下的rootcontroller.m中,我试过设置为例。
theViewController = [[ViewController alloc] initWithNibName:@“AView”包:[NSBundle mainBundle]];
但无济于事
答案 0 :(得分:0)
ViewControllers在哪里设计使用整个屏幕,所以这种情况不应该发生。但是,您需要在视图中(特别是在iPad中)进行一些复杂的用户交互,以考虑使用带有一些子视图控制器的viewcontroller来封装此逻辑,这很常见,如上所述。
我建议您通过代码实现它。你可以使用类似的东西:
- (void)viewDidLoad {
//创建视图控制器 viewController1_ = [[ViewController alloc] initWithNibName:@“View1”andBundle:nil]; viewController2_ = [[ViewController alloc] initWithNibName:@“View1”andBundle:nil]; viewController3_ = [[ViewController alloc] initWithNibName:@“View1”andBundle:nil];
//将视图添加到主视图中 [self.view addSubview:viewController_1.view]; [self.view addSubview:viewController_2.view]; [self.view addSubview:viewController_3.view];
// TODO:也许设置适当的帧?
}
对事件绕过很不满意。当您将辅助视图控制器嵌入到主视图控制器中时,没有任何标准事件将传递给您的子控件(例如:viewWillAppear,shouldAutorotate,...将不会被您的子控制器接收)。如果您在子视图控制器中需要它们,请记得明确地绕过它们。
如果使用IB未正确创建视图,请检查您是否遇到这些事件绕过问题。
希望有所帮助!