我试图创建一个启动屏幕,然后设置动画到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()
}
}
}
}
}
最佳答案
您无法在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()
}
}
}
}
}
注意:我必须更改
Content
和ContentView
的名称我希望这有帮助。
关于swift - 参数类型 '()'与预期的 'View'类型不一致SwiftUI吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59326558/