Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从UITabBarController调用SwiftUI视图_Ios_Swiftui - Fatal编程技术网

Ios 从UITabBarController调用SwiftUI视图

Ios 从UITabBarController调用SwiftUI视图,ios,swiftui,Ios,Swiftui,我正在慢慢地将我的项目转换为SwiftUI。我想将情节提要中的UITabBarController连接到SwiftUI视图 我的理解是最好的方法是使用UIHostingController。我将一个添加到我的故事板,将其连接到选项卡栏,并将自定义HostingViewController作为自定义类添加到该控制器。 (如果与所有内容一样重要,则会显示在“更多”选项卡下) 我假设这里缺少一些代码,但我发现大部分代码片段缺少适当的示例。 UIHostingController import Foun

我正在慢慢地将我的项目转换为SwiftUI。我想将情节提要中的UITabBarController连接到SwiftUI视图

我的理解是最好的方法是使用UIHostingController。我将一个添加到我的故事板,将其连接到选项卡栏,并将自定义HostingViewController作为自定义类添加到该控制器。 (如果与所有内容一样重要,则会显示在“更多”选项卡下)

我假设这里缺少一些代码,但我发现大部分代码片段缺少适当的示例。 UIHostingController

import Foundation
import UIKit
import SwiftUI

class HseEventHostingVC: UIHostingController<HseView>{

}
以及我的HSECell可识别结构

import Foundation

struct HSECell: Identifiable{

    var id = UUID()
    var name: String
    var duedate: String
    var status: String
    var reportedBy: String
    var reportedDate: String
    var hseid: String 

}

更新:我尝试在主机控制器之前添加一个导航控制器,结果只得到一个黑屏。

解决了这个问题,我想其他人最终会需要它

关键是在定义UIHostController时,我必须使用SwiftUI视图正确初始化它

class MyClassNameHostVC: UIHostingController<CustomSwiftUiView>{
    required init?(coder aDecoder: NSCoder){
        super.init(coder: aDecoder, rootView: CustomSwiftUiView())
    }

} 
类MyClassNameHostVC:UIHostingController{
必需的初始化?(编码器aDecoder:NSCoder){
super.init(编码者:aDecoder,根视图:CustomSwiftUiView())
}
} 

帮助解决了这个问题。

很高兴你解决了你的问题。我面对的是同样的黑屏,但我的错误是我没有在故事板中替换我的UIHostingController的自定义类。这成功了,很好,你找到了答案,这对我帮助很大!这件事已经做了好几天了
class MyClassNameHostVC: UIHostingController<CustomSwiftUiView>{
    required init?(coder aDecoder: NSCoder){
        super.init(coder: aDecoder, rootView: CustomSwiftUiView())
    }

}