如何将Storyboard ViewController添加到SwiftUI项目中? [英] How to add Storyboard ViewController into SwiftUI Project?

查看:86
本文介绍了如何将Storyboard ViewController添加到SwiftUI项目中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在我的SwiftUI项目上工作,现在每个View都在SwiftUI中,但是由于SwiftUI的某些限制,我不得不在我的SwiftUI项目中添加Storyboard的ViewControllers.我正在尝试这种方法,

I am working on my SwiftUI Project and every View is now in SwiftUI, however due to some limitations of SwiftUI I have to add Storyboard's ViewControllers into my SwiftUI project. I am trying this method,

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>) {


}  
}

这在我的情节提要的ViewController调用中甚至可以正常使用viewDidLoad()方法,但是在我的情节提要屏幕上看不到任何元素.如何渲染这些元素?就像普通的Storyboard东西一样.

This works fine and even viewDidLoad() method of my Storyboard's ViewController calls, but I am unable to see any element on my Storyboard Screen. How can I render those elements? Just like the normal Storyboard stuff.

推荐答案

您刚刚通过类初始化程序创建了控制器,要从情节提要中实例化它,您必须像下面这样

You just created controller by class initialiser, to instantiate it from storyboard you have to do like the following

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

}

这篇关于如何将Storyboard ViewController添加到SwiftUI项目中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆