【问题标题】:Embedding ViewController insider another ViewController in Storyboard将 ViewController 嵌入 Storyboard 中的另一个 ViewController
【发布时间】:2012-07-07 06:55:25
【问题描述】:

如何使用 Interface Builder 中的 iOS5 ViewController 容器(在故事板上)?

iOS 文档是这样说的(UIViewController -> View Management -> Storyboards):

例如,您可以声明一个视图控制器的内容包含在另一个视图控制器中

【问题讨论】:

  • 您只能在 iOS 5 中将内容嵌入到 UINavigaitionControllerUITabBarController 中。要将视图控制器的内容嵌入故事板中的任意容器视图控制器中,您需要使用 iOS 6。 ..
  • 如何在 IB 的 UINavigationController 中嵌入内容?
  • 在storyboard中选择控制器,然后从菜单中选择Editor->Embed In->Navigation Controller

标签: ios uistoryboard


【解决方案1】:

来自 Interface Builder(又名 Storyboard 编辑器)的 Xcode 11.7

  1. 按住 CtrlClick(即右键单击的macOS 版本)在您的目标Controller(您希望将其嵌入到其他Controller)。
  2. 在弹出菜单中,从Presenting Segues 部分,将Embed 选项前面的圆圈拖到您的来源Controller
  3. 最后会出现另一个弹出菜单,选择viewDidLoad选项(如果有多个选项)。

【讨论】:

    【解决方案2】:

    iOS 中的 ViewController 只是一个绑定到视图的对象。界面构建器中的视图控制器可以拥有一百万个视图控制器作为属性,尽管没有理由这样做,除非连接到视图控制器的视图具有一百万个子视图并且它们都需要自己的控制器。

    您不能声明 iOS 中有视图控制器包含。这是没有意义的。 请理解,视图控制器只包含一个视图和您添加到其中的任何插座或代码。

    它可以加载并显示另一个视图控制器。它可以保存对另一个视图控制器的引用。 但是视图控制器不会通过任何分层方式包含另一个视图控制器。

    【讨论】:

    • UIViewControllers 可以有父子关系,这是一种层次关系。包含可能不是准确的词,但是具有子视图控制器的视图控制器是可能的,它们被 UIViewController API 广泛使用和支持。
    • UIViewController 上的方法显示父/子关系的层次结构removeFromParentViewControlleraddChildViewController
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2012-10-21
    相关资源
    最近更新 更多