【问题标题】:custom container view controller + storyboard?自定义容器视图控制器 + 故事板?
【发布时间】:2013-02-01 12:15:17
【问题描述】:

我想实现自己的容器视图控制器。 请想象这是我的 ipad

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

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

@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;
   }

问题1:使用情节提要完成我的任务是否正确? 问题2:容器视图有哪些限制?它是 addChildViewController API 的视觉替代品吗?如果不是,我应该在哪里实现子父关系?我应该在 prepareForSegue 方法中的组合视图控制器中使用

 [self addChildViewController:aViewController]; 
    [self.view addSubview:aViewController.view];

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

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

编辑:
我想在所有人之间建立关系。 “B”视图的内容依赖于“A”,“C”视图的内容依赖于“B”。

【问题讨论】:

    标签: objective-c ipad storyboard uistoryboardsegue container-view


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答!我想在“A”和“B”之间建立关系。 “B”视图的内容取决于“A”视图中选择的内容。
    • 其实可以的。我在“A”是表视图控制器和“B”简单的 ui 视图控制器时使用。我在他们之间传递数据没有问题。我想知道如果我继续这样下去会不会有很多陷阱?
    • @НаильГалиаскаровб,这取决于您如何从另一个控制器引用一个控制器。 A、B 和 C 都将是组合视图控制器的子视图控制器,因此您可以从 childViewControllers 属性中获取对它们的引用。
    • 这是问题之一。如果我把容器视图'A',这意味着它是组合视图控制器的子视图控制器,它是父子关系的视觉替换?
    • @НаильГалиаскаров,我不明白你所说的“亲子关系的视觉替换”是什么意思。
    猜你喜欢
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 2011-12-28
    • 2018-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多