16

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

NavigationController '关系'

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

4

4 回答 4

5

可以将容器视图控制器链接到孩子。事实上,这样做非常容易。您打开对象库,在搜索字段中键入“容器”,然后查找对象“容器视图”。它看起来像这样:

在此处输入图像描述

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

然后,您从容器视图中控制并拖动到您希望容器视图托管的另一个视图控制器上。IB 为你设置了一个“embed segue”。当父视图控制器的内容视图被加载时,嵌入 segue 被调用。embed segue 设置父/子视图控制器关系并执行您需要的内务处理。这很容易而且无痛。

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

看看 github 上的这个项目,它展示了如何使用 embed segues 将 2 个静态 UITableViewControllers 包含在使用容器视图和嵌入 segues 的父级中。该项目为父子 VC 建立自定义协议以相互通信。在 prepareForSegue 方法中,父级保存指向两个子 VC 的指针,并将自己设置为两个子 VC 的代表,以便子级可以与父级通信。

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

于 2014-05-25T19:28:25.867 回答
1

您可以为此使用容器视图。Container View 会自动创建与新视图控制器的关系。

于 2013-07-10T11:14:17.790 回答
0

您是否尝试过继承 UITabbarcontroller 或 UINavigationController?

您可以创建从其中之一扩展的自定义类,然后将其设置在情节提要中 - 从而允许您创建相同的关系。然后您可以隐藏标签栏并添加您想要的任何功能。

在此处输入图像描述

于 2013-04-11T22:02:21.160 回答
-1

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

为了让 iOS 将事件正确地路由到子视图控制器和这些控制器管理的视图,您的容器视图控制器必须在将子视图控制器添加到视图层次结构之前将子视图控制器与其自身关联。

无论如何 - 一个猜测......

于 2012-04-13T22:39:47.703 回答