ios - 如何将 Storyboard ViewController 添加到 SwiftUI 项目中?
问题描述
我正在开发我的 SwiftUI 项目,每个视图现在都在 SwiftUI 中,但是由于 SwiftUI 的一些限制,我必须将 Storyboard 的 ViewControllers 添加到我的 SwiftUI 项目中。我正在尝试这种方法,
struct AssetsListView: UIViewControllerRepresentable {
var taskID : String
public typealias UIViewControllerType = AssetsListViewController
func makeUIViewController(context: UIViewControllerRepresentableContext<AssetsListView>) -> AssetsListViewController {
let assetsListVC = AssetsListViewController()
assetsListVC.taskID = taskID
return assetsListVC
}
func updateUIViewController(_ uiViewController: AssetsListViewController, context: UIViewControllerRepresentableContext<AssetsListView>) {
}
}
这工作正常,甚至我的 Storyboard 的 ViewController 调用的 viewDidLoad() 方法,但我无法在我的 Storyboard 屏幕上看到任何元素。如何渲染这些元素?就像普通的情节提要一样。
解决方案
您刚刚通过类初始化器创建了控制器,要从情节提要中实例化它,您必须执行以下操作
func makeUIViewController(context:
UIViewControllerRepresentableContext<AssetsListView>) -> AssetsListViewController {
let storyboard = UIStoryboard(name: "Main", // < your storyboard name here
bundle: nil)
let assetsListVC = storyboard.instantiateViewController(identifier:
"AssetsListViewController") // < your controller storyboard id here
assetsListVC.taskID = taskID
return assetsListVC
}
推荐阅读
- sql - 将 SQL 查询(与子查询连接)转换为 KnexJS
- php - 编辑数组的项目 PHP
- mozilla-deepspeech - 一个像样的 Mozilla 深度语音训练通常需要多少个 epoch?
- javascript - 编译 UPDATE 查询时检测到 KNEX 未定义的绑定
- java - 两个不同的 jar x,y 依赖于不同版本的 z。用户如何在他的应用程序中同时拥有 x,y?
- hadoop - HDFS 目录数
- html - 为什么我的元素之间有空格?
- android - 检测android中图像的所有颜色
- go - Windows 原生回调仅在 64 位平台上返回 32 位结果
- ios - XLPagerTabStrip 中未出现 toast 的 showMessage 函数