SwiftUI 崩溃 — 尝试弹出到丢失的目的地

问题描述 投票:0回答:1

我有一个简单的主应用程序架构:

struct ContentView: View {

@State private var isSignedIn = false
@AppStorage("onboardingCompleted") var onboardingCompleted: Bool = false

var body: some View {
    Group {
        if onboardingCompleted && isSignedIn {
            MainView()
        } else {
            OnboardingView()
        }
    }
    .onAppear() {
        signIn()
    }
}

OnboardingView 是一个导航视图。 MainView 是一个 TabView。当用户完成入职后,我会在这些之间进行切换。但是,当用户在最后一个入门步骤中点击“完成”按钮时,这会被写入控制台:

Trying to pop to a missing destination - SwiftUI/NavigationBridge_PhoneTV.swift:213 - please file a bug report.

在生产中,这会导致崩溃。我环顾四周,当您将 TabView 嵌入到 NavigationView 中时,似乎这是一个问题,反之亦然?但这里的情况并非如此,它们是独立的,我在它们之间切换。

有什么想法吗?

ios swift swiftui
1个回答
0
投票

SwiftUI 不允许你调用视图作为函数,把 UIView 放在 UIHostingController 中就可以调用它了!

func CallLogInSheet() {
    
   let vc = UIHostingController(rootView: signIn())
    vc.modalPresentationStyle = .fullScreen
    UIApplication.shared.windows[0].rootViewController?.present(vc, animated: true)
}
© www.soinside.com 2019 - 2024. All rights reserved.