5

我们正在推动一个SwiftUI嵌入在这样UIHostingViewControllerUIKit土地中的视图:

首先制作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将按预期运行。

如果我们可以进一步澄清,请告诉我们!

4

0 回答 0