自定义容器视图控制器+故事板?

Nei*_*rov 3 objective-c storyboard ipad uistoryboardsegue container-view

我想实现自己的容器视图控制器.请假设这是我的ipad

在此输入图像描述

一种通常的分割视图控制器,但我想扩展它:视图"a"的宽度应该可调整大小,当我点击视图'B'时 - 视图'C'进入可见区域

在此输入图像描述

例如,在我的故事板中,我有3个容器视图:AViewController(用于A视图),BViewController,CViewController和一个组合视图控制器(初始视图控制器).在组合视图控制器中,我将实现从容器视图嵌入segue并通过以下代码初始化容器视图之间的关系:

@property ... *aViewController,*bViewController,*cViewController;
    - (void)prepareForSegue:(UIStoryboardSegue *)segue
    sender:(id)sender
    {
    if ([segue.identifier isEqualToString:@"EmbedAViewController"])
    {
    self.aViewController =
    segue.destinationViewController;
    }
    if ([segue.identifier isEqualToString:@"EmbedBViewController"])
    {
    self.bViewController=segue.destinationViewController
    }

   -(void)viewDidLoad
   {
     [super viewDidLoad];
     self.aViewController.bViewController=self.bViewController;
   }
Run Code Online (Sandbox Code Playgroud)

问题1:使用故事板实现我的作业是否正确? 问题2:容器视图有哪些限制?它是addChildViewController API的直观替代品吗?如果不是,我应该在哪里实现父母与子女的关系?我应该在prepareForSegue方法中使用我的组合视图控制器

 [self addChildViewController:aViewController]; 
    [self.view addSubview:aViewController.view];
Run Code Online (Sandbox Code Playgroud)

问题3:如何在开始时将容器视图放在可见区域之外?

如果我在某处犯了错误或对基本概念有很大的误解,请不要打败我.我做了很多google-foo,我真的很感激任何帮助.非常感谢提前!

编辑:
我想在所有人之间建立关系."B"视图的内容取决于"A",而"C"视图的内容取决于"B".

rde*_*mar 5

我认为你确实有一些误解.如果要在故事板中实现容器视图控制器,则无需在代码中执行任何操作.从一个控制器开始,即您正在调用的组合视图控制器,并拖动3个容器视图.最初,您可能希望调整它们的大小,使它们都是全高,并使它们在主视图中并排放置.然后,您可以使用尺寸检查器更改其尺寸和位置,以便C的视图从组合控制器视图的右边缘开始,这样它将在屏幕外开始.您将使用embed segue自动获得连接到各自容器视图的三个视图控制器.所有这三个控制器将与组合控制器同时实例化.您将需要组合控制器中的出口到其每个容器视图,以便您可以根据需要在代码中调整它们的大小.