Swift toggle()和toggle()之间的区别
我正在学习SwiftUI中的Modals,代码如下: ContentView.swift:Swift toggle()和toggle()之间的区别,swift,swiftui,Swift,Swiftui,我正在学习SwiftUI中的Modals,代码如下: ContentView.swift: import SwiftUI struct ContentView: View { @State private var showingAddUser = false var body: some View { return VStack { Text("Modal View") }.onTapGesture { s
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()
}
}
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))
}
}
AddView.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()
}
}
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))
}
}
当我第一次尝试运行代码并检查控制台中的打印
输出时,布尔值更改为真
,但是如果我使用真
初始化@State
变量showingAddUser
,控制台输出将保持不变,即保持真
。不应该toggle()
将布尔值翻转为false
从概念的角度来看,这个toggle()
与toggle
开关不同吗 toggle()是值类型Bool
上的一个变异函数。如果将showingAddUser
的初始值设置为true
,则初始启动时将显示AddUser
视图,如果设置为false
,则不会显示该视图,这就是区别所在
切换
是一个快捷的UI视图。它可以用作SwiftUI body中的任何其他视图,如下所示:
struct ContentView:View{
@状态变量bool:bool
var body:一些观点{
切换(isOn:$bool){
文本(“你好,世界!”)
}
}
}
切换()是值类型Bool
上的一个变异函数。如果将showingAddUser
的初始值设置为true
,则初始启动时将显示AddUser
视图,如果设置为false
,则不会显示该视图,这就是区别所在
切换
是一个快捷的UI视图。它可以用作SwiftUI body中的任何其他视图,如下所示:
struct ContentView:View{
@状态变量bool:bool
var body:一些观点{
切换(isOn:$bool){
文本(“你好,世界!”)
}
}
}
添加视图中不需要isPresented Boolean
试试这个
ContentView.swift
import SwiftUI
struct ContentView: View {
@State private var showingAddUser = false
var body: some View {
return VStack {
Text("Modal View")
}.onTapGesture {
self.showingAddUser = true
print(self.showingAddUser) //for console
}
.sheet(isPresented: $showingAddUser) {
Addview()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import SwiftUI
struct AddView: View {
var body: some View {
Button(action:
// Do Your Things
) {
Text("MyButton")
}
}
}
struct Addview_Previews: PreviewProvider {
static var previews: some View {
Addview()
}
AddView.swift
import SwiftUI
struct ContentView: View {
@State private var showingAddUser = false
var body: some View {
return VStack {
Text("Modal View")
}.onTapGesture {
self.showingAddUser = true
print(self.showingAddUser) //for console
}
.sheet(isPresented: $showingAddUser) {
Addview()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import SwiftUI
struct AddView: View {
var body: some View {
Button(action:
// Do Your Things
) {
Text("MyButton")
}
}
}
struct Addview_Previews: PreviewProvider {
static var previews: some View {
Addview()
}
添加视图中不需要isPresented Boolean
试试这个
ContentView.swift
import SwiftUI
struct ContentView: View {
@State private var showingAddUser = false
var body: some View {
return VStack {
Text("Modal View")
}.onTapGesture {
self.showingAddUser = true
print(self.showingAddUser) //for console
}
.sheet(isPresented: $showingAddUser) {
Addview()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import SwiftUI
struct AddView: View {
var body: some View {
Button(action:
// Do Your Things
) {
Text("MyButton")
}
}
}
struct Addview_Previews: PreviewProvider {
static var previews: some View {
Addview()
}
AddView.swift
import SwiftUI
struct ContentView: View {
@State private var showingAddUser = false
var body: some View {
return VStack {
Text("Modal View")
}.onTapGesture {
self.showingAddUser = true
print(self.showingAddUser) //for console
}
.sheet(isPresented: $showingAddUser) {
Addview()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
import SwiftUI
struct AddView: View {
var body: some View {
Button(action:
// Do Your Things
) {
Text("MyButton")
}
}
}
struct Addview_Previews: PreviewProvider {
static var previews: some View {
Addview()
}
Toggle()用于更改状态,如显示和隐藏密码。在这种情况下,如果要显示另一个视图,则不需要使用Toggle。下一次,它将自动为其指定假值。不需要切换()切换()用于更改状态,如显示和隐藏密码。在这种情况下,如果要显示另一个视图,则不需要使用切换。下一次,它将自动为其指定假值。无需切换()存在带有
切换
和属性属性(@State
)的Swift错误。它将与标准self.showingAddUser=一起工作!self.showingAddUser
。存在一个带有切换
和属性属性(@State
)的Swift错误。它将与标准self.showingAddUser=一起工作!self.showingAddUser
。