swiftui - 从 swiftUI 中的一个嵌入式 UIViewController 导航到 swift UI 中的另一个嵌入式 UIViewcontroller
问题描述
我有一个嵌入在 swiftUI 视图中的 UIViewController
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView(overlayShow: OverlayShow())
}
}
struct OnboardingWrapper: UIViewControllerRepresentable {
var overlayShow: OverlayShow
func makeUIViewController(context: Context) -> ReturnSomthing {
let controller = ReturnSomthing(shareConfig: onboardingConfig)
controller.showOverlay = overlayShow
return controller
}
func updateUIViewController(_ uiViewController: ReturnSomthing, context: Context) {
}
public typealias UIViewControllerType = ReturnSomthing
}
我希望能够直接从 SwiftUI 导航到另一个带有嵌入式 UIViewController 的 SwiftUI 视图 SO,我在 SwiftUI 的视图上做了
struct ContentView: View {
@ObservedObject var overlayShow: OverlayShow = OverlayShow()
var body: some View {
NavigationView {
NavigationLink(destination: OverlayView(overlay: LoadingUnknownOverlayViewContainer(description: "it is spinning :0", designModel: LoadingOverlayDesignModel(type: .unknown))), isActive: $overlayShow.isShowingOverlay) {
OnboardingWrapper(overlayShow: overlayShow)
}
}
}
}
导航激活的条件是overlayShow.isShowingOverlay
is true
。此变量在 UIViewController 中使用ObservableObject
.
问题是,overlayShow.isShowingOverlay
无论我在哪里点击第一个 UIViewController的值,OnboardingWrapper
导航都会被激活并转到下一页。
解决方案
听起来您正在看到 OnboardingWrapper,当您单击它时,您会看到 OverlayView。也许这会有所帮助:
var body: some View {
NavigationView {
OnboardingWrapper(overlayShow: overlayShow)
NavigationLink(destination: OverlayView(
overlay:LoadingUnknownOverlayViewContainer(
description: "it is spinning :0",
designModel: LoadingOverlayDesignModel(type: .unknown))),
isActive: $overlayShow.isShowingOverlay) {
EmptyView()
}
}
}
OnboardingWrapper 会出现,然后当 overlayShow.isShowingOverlay 为 true 时,应该呈现 OverlayView。
推荐阅读
- webview2 - 使用 WebView2 将文件上传到网页
- flutter - 如何在颤动中添加多个文本字段并从中获取值
- javascript - 如何将属性定义为地图(字典)
- c# - 如何在文本文件中选择某些“节点” - 基于使用 HTMLAgilityPack 的某行包含的内容?
- python - 如何从网络中删除两个或多个子网?
- java - 如何重新排列 LinkedList 中的元素,使负数排在第一位?它成功地结束了循环?
- wpf - 根据其内容调整 ListBox 项的宽度
- php - 如何从 Paypal 获取交易 ID (txn_id) 的详细信息?
- python - BiLSTM_Classifier 中的输入/输出/循环丢失层以及它们如何影响模型和预测
- spring - Spring MVC - 需要一个标题而不使用该值?