参数类型'()'与预期类型'视图'SwiftUI不符?

时间:2019-12-13 16:37:37

标签: swift compiler-errors swiftui

我正在尝试创建一个启动屏幕,然后为mainMenu设置动画,但是出现标题中指定的错误。您可能会看到我正在尝试执行此操作。请帮忙。

struct Content: View {
    @State var ShowMainMenu = false
    var body: some View {
        VStack {
            if (ShowMainMenu) {
                MainMenu()
            } else {
                ContentView(ToMainMenu: $ShowMainMenu)
            }
        }
    }
}
struct ContentView: View {
    @Binding var ToMainMenu:Bool
    var body: some View {
        VStack {
            Text("I hate phone numbers")
            DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                withAnimation {
                    self.ToMainMenu.toggle()
                }
            }
        } 
    }
}

1 个答案:

答案 0 :(得分:2)

您无法在view中执行代码,但可以在onAppear中的view中执行某些操作:

struct ContentView: View {
    @State var ShowMainMenu = false
    var body: some View {
        VStack {
            if (ShowMainMenu) {
                Text("Hello")
            } else {
                Content(ToMainMenu: $ShowMainMenu)
            }
        }
    }
}
struct Content: View {
    @Binding var ToMainMenu: Bool
    var body: some View {
        VStack {
            Text("I hate phone numbers")
        }.onAppear() {
            DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                withAnimation {
                    self.ToMainMenu.toggle()
                }
            }
        }
    }
}

注意:我必须更改ContentContentView的名称

我希望这会有所帮助。