You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有UIKit页面中直接嵌入添加SwiftUI视图组件

解决方案

方案1:Storyboard可视化实现(推荐,符合拖拽调整需求)

这个方案用Container View内嵌Hosting View Controller的方式实现,你可以直接在Storyboard里拖拽调整SwiftUI视图的位置和大小,和调整普通UIKit视图完全一致:

  • 打开目标UIKit页面所在的Storyboard,从组件库拖入一个Container View到你指定的位置,直接添加约束固定宽高和布局即可。
  • 删除Container View默认生成的关联子ViewController,再从组件库拖入一个Hosting View Controller到Storyboard画布中。
  • 右键按住Container View,拉线到刚添加的Hosting View Controller,选择「embed」类型的segue完成关联。
  • 新建自定义UIHostingController子类,绑定你要展示的SwiftUI视图(示例如下,假设你的SwiftUI图表视图名为ChartView):
import SwiftUI
import UIKit

class ChartHostingController: UIHostingController<ChartView> {
    required init?(coder: NSCoder) {
        super.init(coder: coder, rootView: ChartView())
    }
}
  • 回到Storyboard,选中刚添加的Hosting View Controller,在Identity检查器中将Custom Class设置为你刚创建的ChartHostingController即可。

方案2:纯代码嵌入

如果你需要更灵活的动态控制,可以提前在Storyboard中拖入一个空白UIView作为SwiftUI视图的占位容器,再用代码嵌入:

  • 首先在当前UIKit ViewController中声明Hosting Controller属性:
private let chartHostingController = UIHostingController(rootView: ChartView())
  • 在viewDidLoad方法中完成子控制器和视图的绑定:
override func viewDidLoad() {
    super.viewDidLoad()
    // 提前在Storyboard中创建好占位的chartContainerView并关联IBOutlet
    addChild(chartHostingController)
    chartHostingController.view.translatesAutoresizingMaskIntoConstraints = false
    chartContainerView.addSubview(chartHostingController.view)
    
    // 让SwiftUI视图撑满整个占位容器
    NSLayoutConstraint.activate([
        chartHostingController.view.topAnchor.constraint(equalTo: chartContainerView.topAnchor),
        chartHostingController.view.leadingAnchor.constraint(equalTo: chartContainerView.leadingAnchor),
        chartHostingController.view.trailingAnchor.constraint(equalTo: chartContainerView.trailingAnchor),
        chartHostingController.view.bottomAnchor.constraint(equalTo: chartContainerView.bottomAnchor)
    ])
    
    chartHostingController.didMove(toParent: self)
}

如果后续需要动态更新SwiftUI视图内容,直接修改chartHostingController.rootView即可。

内容的提问来源于stack exchange,提问作者Mehmet Ozen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:24:06