我们正在推动一个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
的导航堆栈,那么原始的后退按钮只能导航回原始呈现。NavigationView
NavigationLink
navigationBar
UIViewController
有没有办法将SwiftUI
嵌入NavigationView
到现有堆栈中的视图推送到现有UINavigationController
堆栈中?
到目前为止,我们唯一的想法是UIHostingViewController
为每个新屏幕创建一个新SwiftUI
屏幕,并通过某种委托方法将其推送到堆栈上。
我们正在寻找的是这样的:
UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]
中的后退<
箭头navigationBar
将按预期运行。
如果我们可以进一步澄清,请告诉我们!