Я изучаю модальные окна в SwiftUI, и код ниже:
ContentView.swift:
import SwiftUI
struct ContentView: View {
@State private var showingAddUser = false
var body: some View {
return VStack {
Text("Modal View")
}.onTapGesture {
self.showingAddUser.toggle()
print(self.showingAddUser) //for console
}
.sheet(isPresented: $showingAddUser) {
Addview(isPresented: self.$showingAddUser)
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
AddView.swift:
import SwiftUI
struct Addview: View {
@Binding var isPresented: Bool
var body: some View {
Button("Dismiss") {
self.isPresented = false
}
}
}
struct Addview_Previews: PreviewProvider {
static var previews: some View {
Addview(isPresented: .constant(false))
}
}
Когда я пытаюсь чтобы запустить код в первый раз и проверить вывод print
в консоли, логическое значение изменится на true
, однако, если я инициализирую @State
переменную showingAddUser
с помощью true
, вывод консоли не изменится, то есть останется true
. Не следует ли toggle()
переворачивать логическое значение на false
?
Этот переключатель toggle()
отличается от переключателя Toggle
с концептуальной точки зрения?