我们正在将一个嵌入在
首先创建
这让我们来谈一下SwiftUI的环境。但是,如果我们的SwiftUI环境有自己的导航堆栈,使用NavigationView和NavigationLink,那么原始navigationBar的返回按钮只能导航回最初呈现的UIViewController。
是否有一种方法可以将嵌入在NavigationView中的SwiftUI视图推送到现有的UINavigationController堆栈上?
到目前为止,我们所想到的唯一想法是为每个新的SwiftUI屏幕创建一个新的UIHostingViewController,并通过某种委托方法将其推送到堆栈上。
我们正在寻找像这样的东西:
UIHostingViewController
中的 SwiftUI
视图推向 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的环境。但是,如果我们的SwiftUI环境有自己的导航堆栈,使用NavigationView和NavigationLink,那么原始navigationBar的返回按钮只能导航回最初呈现的UIViewController。
是否有一种方法可以将嵌入在NavigationView中的SwiftUI视图推送到现有的UINavigationController堆栈上?
到目前为止,我们所想到的唯一想法是为每个新的SwiftUI屏幕创建一个新的UIHostingViewController,并通过某种委托方法将其推送到堆栈上。
我们正在寻找像这样的东西:
UINavigationStack: [UIViewController -> UIViewController -> SwiftUIView -> SwiftUIView]
navigationBar
中的返回<
箭头将按预期行为。
如果需要进一步澄清,请告诉我们!