Swiftui 变量不应为'时为零;不可能

Swiftui 变量不应为'时为零;不可能,swiftui,viewbuilder,Swiftui,Viewbuilder,我今天可能工作太多了 在这个小应用程序中,当点击按钮时,3秒钟后必须出现一个新视图。hVideoURL变量被赋值(,它不是NIL)。因此,新视图(工作表)应显示文本“不是零” 但由于某种原因,当它显示时,我看到“哇,它是nil”,这意味着变量仍然没有值 我为什么要那样做?我错过了什么 struct ContentView: View { @State var hVideoURL: URL? = nil @State var isPaused: Bool = false

我今天可能工作太多了

在这个小应用程序中,当点击按钮时,3秒钟后必须出现一个新视图。hVideoURL变量被赋值(,它不是NIL)。因此,新视图(工作表)应显示文本“不是零”

但由于某种原因,当它显示时,我看到“哇,它是nil”,这意味着变量仍然没有值

我为什么要那样做?我错过了什么

struct ContentView: View {
    @State var hVideoURL: URL? = nil
    @State var isPaused: Bool = false

    var body: some View {
        Button("Let's Go!") {
            DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
                print("settings isPaused to TRUE")
                self.hVideoURL = URL(string: "https://firebasestorage.googleapis.com/v0/b/fitma-e3043.appspot.com/o/flamelink%2Fmedia%2F1-horizontal.mov?alt=media&token=8f7dfc0f-0261-4a78-9eb0-6154ce1d9dfe")
                
                print("[debug] hVideoURL = \(hVideoURL)")
                
                self.isPaused = true
            }
        }
        .sheet(isPresented: self.$isPaused, onDismiss: {
            self.isPaused = false
            print("resume playing main video")
            
        }) {
           detailedVideoView
        }
    }
    
    @ViewBuilder
    var detailedVideoView: some View {
        if self.hVideoURL != nil {
            VStack {
                Text("IS NOT NIL")
            }
        } else {
            Text("wow, it's nil")
        }
    }
}

这回答了你的问题吗?谢谢,但问题在于“hVideoURL”。它获取一个值,但当工作表打开时,hVideoURL仍然为nill。。“isPaused”在我的情况下处理正确,所以我认为你的链接与我的问题无关。哦,看起来你是对的。我明天会试一试。非常感谢。