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

Ste*_*hen 16 xcode4.2 uistoryboard uicontainerview

我正在根据苹果规范创建自定义容器视图.我想使用storyboard连接三个静态子UIViewControllers.故事板中是否有一种简单的方法可以通过故事板Relationship中的UINavigationController 进行连接?

NavigationController'关系'

根据我的研究,似乎这是不可能的.

Dun*_*n C 5

IS可以将容器视图控制器链接到一个孩子.事实上,这样做很容易.您打开Object库,在搜索字段中键入"Container",然后查找对象"Container view".它看起来像这样:

在此输入图像描述

将容器视图拖到视图控制器的内容视图中.

然后,您可以控制 - 从容器视图拖动到您希望容器视图托管的其他视图控制器.IB为您设置了"嵌入式".加载父视图控制器的内容视图时,将调用embed segue.embed segue设置父/子视图控制器关系并执行您需要的内务处理.这很容易,也没有痛苦.

为每个嵌入segue调用prepareForSegue方法.您可以像嵌入其他segue一样为嵌入segue指定唯一标识符,然后使用prepareForSegue中的segue ID为子视图控制器执行额外设置.

看看github上的这个项目,该项目展示了如何使用embed segue在父级中使用容器视图和嵌入segue包含2个静态UITableViewControllers.该项目为父级和子级VC设置自定义协议,以便相互通信.在prepareForSegue方法中,父节点指向两个子VC的指针,并且还将自己设置为两个子VC的委托,以便子节点可以与父节点通信.

您可以在以下链接找到该项目:https: //github.com/DuncanMC/test


No *_*ing -1

我还没有这样做,但这是一个有趣的问题。在尝试在故事板中关联子视图控制器之前,您是否在容器控制器中定义了子视图控制器(您可能正在这样做 - 没有显示代码)?从文档来看,这听起来像是您需要做的 - 可能它不像通用类,您可以将它们拖入其中。

\n\n
\n

为了让 iOS 将事件正确路由到子视图控制器以及这些控制器管理的视图,容器视图控制器必须在将 child\xe2\x80\x99s 根视图添加到视图层次结构之前将子视图控制器与其自身关联。

\n
\n\n

无论如何——猜测...

\n

  • 我遇到的问题是 Apple 允许 UITabBarController 和 UINavigationController 具有自定义对象没有的这些特殊的“Relationship”属性。我在故事板中有子视图控制器作为控制器图的一部分,但是没有多少 cntl 单击允许我将它们连接起来。 (4认同)
  • 斯蒂芬 - 确实如此。我在普通容器视图中看到的唯一一件事是“嵌入”另一个视图控制器的选项。只有一个。不是两个或更多。这就是让我摸不着头脑的部分。毕竟它是一个容器,那么只嵌入一个容器有什么用呢?:\ (2认同)