我们正在推动一个SwiftUI嵌入在这样UIHostingViewController的UIKit土地中的视图:
首先制作UIViewController:
func hostingController() -> UIViewController {
let swiftUIView = swiftUIView(viewModel: viewModel(data: [Data, Data, Data]))
return UIHostingController(rootView: swiftUIView)
}
然后将其压入UINavigationView堆栈:
[self.navigationController pushViewController:hostingViewController animated:YES];
这让我们进入SwiftUI's 环境。但是,如果我们的环境有它自己的带有andSwiftUI的导航堆栈,那么原始的后退按钮只能导航回原始呈现。NavigationViewNavigationLinknavigationBarUIViewController
有没有办法将SwiftUI嵌入NavigationView到现有堆栈中的视图推送到现有UINavigationController堆栈中?
到目前为止,我们唯一的想法是UIHostingViewController为每个新屏幕创建一个新SwiftUI屏幕,并通过某种委托方法将其推送到堆栈上。
我们正在寻找的是这样的:
UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]
中的后退<箭头navigationBar将按预期运行。
如果我们可以进一步澄清,请告诉我们!