如何从NavigationController中的SwiftUI View推送到UIViewController

问题描述

我有一个 SwiftUI url,它是从View中的场景委托实例化的 我想从 SwiftUI UINavigationController

推送到另一个UIViewController

“我的场景委托”显示了如何实例化我的View

View

我该如何实现?

解决方法

您必须将 let vc = UIHostingController(rootView:SwiftUIView()) let navigationControll = UINavigationController(rootViewController: vc) self.window?.rootViewController = navigationControll // Present window to screen self.window?.makeKeyAndVisible() 包装在SwiftUI UIViewController中,然后导航到该位置。

例如

View

并在struct MyMasterViewController: UIViewControllerRepresentable { func makeUIViewController(context: Context) -> MasterViewController { var sb = UIStoryboard(name: "Main",bundle: nil) var vc = sb.instantiateViewController(identifier: "MasterViewController") as! MasterViewController return vc } func updateUIViewController(_ uiViewController: MasterViewController,context: Context) { } typealias UIViewControllerType = MasterViewController } 中通过SwiftUI NavigationLink像这样简单地调用

View

了解有关在SwiftUI here中包装ViewController的更多信息