我正在努力将一些SwiftUI内容实现到我的现有应用程序中。我目前有一个UIViewController,其中包含一个MTKView用于摄像头预览。
我已经创建了一个新的SwiftUI视图,它现在是我的根视图,如在我的SceneDelegate.swift
文件中设置的那样。SwiftUI视图在启动时加载,就像预期的那样。现在,我想创建一个segue,在该segue中,当用户轻击列表中的一行时,它将全屏幕切换到我的现有UIViewController。以下是我的代码调用方式;
var body: some View {
VStack {
NavigationView {
List(sessionTypes) { session in
NavigationLink(destination: CameraControllerWrapper()) {
SessionRow(session: session)
.frame(height: 40.0)
}
}
.navigationBarTitle(Text("Camera Types"))
}
}
}
为了后代,这里是我的CameraControllerWrapper
UIViewControllerRepresentable;
struct CameraControllerWrapper: UIViewControllerRepresentable {
typealias UIViewControllerType = CameraController
func makeUIViewController(context: UIViewControllerRepresentableContext<CameraControllerWrapper>) -> CameraControllerWrapper.UIViewControllerType {
return CameraController()
}
func updateUIViewController(_ uiViewController: CameraControllerWrapper.UIViewControllerType, context: UIViewControllerRepresentableContext<CameraControllerWrapper>) {
//
}
}
虽然这个“方法”可以工作,但是一旦调用CameraController,我的应用程序就会崩溃,因为似乎找不到任何IBOutlets。 CameraController是在故事板中构建的UIViewController。
Storyboard
应用程序,您将(2)MainViewController
根视图设置为SwiftUI
视图,并在此根视图中放置了(3)NavigationView
并且(4)导航到一个具有(5)定义了IBOutlets
的UIViewControllerRepresentable
?如果这个链条中的某些内容有误,请纠正我。 - user7014451