我在遵循Raywenderlich 教程时遇到了问题。每次我单击一个项目时,表单视图都会自动向上跳一点。这是一个错误吗?反正有办法解决吗?代码如下。在 Contentview 中,我使用 GroupedListStyle() 来列出所有项目。我的 xcode 版本是 11.2,Swift 5。
下面是 TaskEditingView.swift
import SwiftUI
struct TaskEditingView: View {
@Binding var task: Task
var body: some View {
Form {
TextField("Name", text:$task.name)
Toggle("Completed", isOn: $task.completed)
}
}
}
struct TaskEditingView_Previews: PreviewProvider {
static var previews: some View {
TaskEditingView(task: .constant(Task(name: "TO DO")))
}
}
Run Code Online (Sandbox Code Playgroud)
下面是 ContentView.swift
import SwiftUI
struct ContentView: View {
@ObservedObject var taskStore: TaskStore
@State var modalIsPresented = false
var body: some View {
NavigationView { …
Run Code Online (Sandbox Code Playgroud) 单击第一个警报视图的关闭按钮后,我想立即显示第二个警报视图。
Button(action: {
self.alertIsVisible = true
}) {
Text("Hit Me!")
}
.alert(isPresented: $alertIsVisible) { () -> Alert in
return Alert(title: Text("\(title)"), message: Text("\n"), dismissButton:.default(Text("Next Round"), action: {
if self.score == 100 {
self.bonusAlertIsVisible = true
}
.alert(isPresented: $bonusAlertIsVisible) {
Alert(title: Text("Bonus"), message: Text("You've earned 100 points bonus!!"), dismissButton: .default(Text("Close")))}
})
)
Run Code Online (Sandbox Code Playgroud)
但是,它给了我一个错误“Alert.Button”不能转换为“Alert.Button?” 如果我将此段置于dismissButton 的范围之外,它将覆盖之前的.alert。那么我该怎么做,我只想在单击第一个警报的关闭按钮后弹出第二个警报。谢谢。