【发布时间】:2021-01-25 20:30:59
【问题描述】:
我们正在推动 SwiftUI 视图嵌入在 UIKit 土地中的 UIHostingViewController 中,如下所示:
首先制作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 的环境。 但是,如果我们的SwiftUI 环境有它自己的导航堆栈,带有NavigationView 和NavigationLink,那么原来的navigationBar 的后退按钮只能导航回原来的呈现UIViewController。
有没有办法将嵌入在NavigationView 中的SwiftUI 视图推送到现有的UINavigationController 堆栈中?
到目前为止,我们唯一的想法是为每个新的SwiftUI 屏幕创建一个新的UIHostingViewController,并通过某种委托方法将其推入堆栈。
我们正在寻找的是这样的:
UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]
navigationBar 中后面的 < 箭头将按预期运行。
如果我们可以进一步澄清,请告诉我们!
【问题讨论】:
标签: swift swiftui uinavigationcontroller swiftui-navigationlink swiftui-navigationview