【问题标题】:How to nest a view controller in Storyboard如何在 Storyboard 中嵌套视图控制器
【发布时间】:2020-05-19 12:10:26
【问题描述】:

对于 iOS 应用程序,Android 中的 Fragment 有替代品吗?例如,我想创建一个带有侧边栏的视图。所以,我有一个包含 2 个其他视图的容器。现在,我正在以编程方式做所有事情。就像创建 3 个视图控制器:用于容器、侧边栏和主屏幕。我稍后使用 addSubView 方法添加 2,但我想将视图控制器嵌套在情节提要中,而不是以编程方式添加视图控制器。我可以以编程方式嵌套视图控制器,但想使用拖放界面来做同样的事情。

我正在使用以下代码添加子视图:

        let homeController = HomeController()
        homeController.delegate = self
        centreController = UINavigationController(rootViewController: homeController)

        view.addSubview(centreController!.view)
        addChild(centreController!)
        centreController?.didMove(toParent: self)

那么,有没有办法使用故事板获得相同的效果?我是 IOS 新手,所以可能缺少一些常见功能。

【问题讨论】:

    标签: ios uiviewcontroller


    【解决方案1】:

    UIKit 中最接近的可能是容器视图控制器:

    来自 Android 开发者文档(片段):

    您可以将片段视为活动的模块化部分,它有自己的生命周期,接收自己的输入事件,并且可以在活动运行时添加或删除(有点像“子活动”,您可以在不同的活动中重复使用)。

    来自 IOS 开发者文档(容器视图控制器):

    容器视图控制器通过将您的内容与您在屏幕上显示该内容的方式分开来促进更好的封装。与显示应用数据的内容视图控制器不同,容器视图控制器显示其他视图控制器,将它们排列在屏幕上并处理它们之间的导航。

    步骤 1

    像普通视图一样从组件选择库中拖动UIContainerView。 Xcode 将为它创建一个新的 ViewController。

    第二步

    将普通视图约束添加到容器视图中,与任何视图组件相同。

    第三步

    将 Container View Controller 用作独立容器。

    我为你做了一个演示项目:https://github.com/atapp/ContainerDEMO

    【讨论】:

    • 非常感谢您的帮助。这正是我正在寻找的。​​span>
    猜你喜欢
    • 2018-12-27
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2012-09-18
    • 1970-01-01
    相关资源
    最近更新 更多