参数类型 '()' 不符合 SwiftUI 'View'预期类型?



我正在尝试创建一个启动屏幕,然后动画到主菜单,但我得到标题中指定的错误。你可能可以看到我是如何做到这一点的。请帮忙。

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()
}
}
} 
}
}

您不能在view中执行代码,但您可以在该viewonAppear执行某些内容:

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的名称

我希望这有所帮助。

最新更新