斯威夫特用户界面!如何将 Bool 值从一个视图更改为另一个视图
SwiftUI ! How to change the Bool value from One View to Another View
下午好!
我有两个观点
登录视图和配置文件视图
LoginView 有多个值:
@State private var email: String = "Email"
@State private var password: String = "Password"
@State private var showToggleSignup: Bool = false
@State private var showToggleLogin: Bool = true
@State private var showToggleReset: Bool = false
@State private var show Profile View: Bool = false
这些值可以通过单击 LoginView 本身中的各种按钮来更改,例如:
Button {
showToggleLogin.toggle()
showToggleReset.toggle()
} label: {
Gradient Button(text: "forgot pass?")
.frame(maxWidth: .infinity, alignment: .leading)
.opacity(showToggleLogin ? 0 : 1)
}
如何在配置文件视图中更改登录视图的这些值?
非常感谢您的帮助!
我需要在视图 1 中将视图 2 中的 showProfile 从 false 更改为 true
也许我有什么不懂,但我正在学习!
如果你有很多像上面这样的变量,你也可以将它们捆绑在一个观察对象中,一个 class 符合 ObservableObject 协议。在那里你 @Publish 变量。使用 .enviroment 绕过这些对象或使用 @EnviromentObject 声明对象。那里有很多教程,比如
如果您在一个视图中有一个@State 变量并且您希望在另一个视图中更改它,您可以将该变量定义为另一个视图中的@Binding 并将其传递。
所以在登录视图中你有:
struct LoginView: View {
@State private var showToggleSignup: Bool = false
var body: some View {
ProfileView(showToggleSignp: $showTogglesignup)
}
}
然后个人资料视图如下所示:
struct ProfileView: View {
@Binding var showToggleSignup: Bool
var body: some View {
// Do whatever you need to do
}
}
祝你好运,
MacUserT
下午好! 我有两个观点 登录视图和配置文件视图
LoginView 有多个值:
@State private var email: String = "Email"
@State private var password: String = "Password"
@State private var showToggleSignup: Bool = false
@State private var showToggleLogin: Bool = true
@State private var showToggleReset: Bool = false
@State private var show Profile View: Bool = false
这些值可以通过单击 LoginView 本身中的各种按钮来更改,例如:
Button {
showToggleLogin.toggle()
showToggleReset.toggle()
} label: {
Gradient Button(text: "forgot pass?")
.frame(maxWidth: .infinity, alignment: .leading)
.opacity(showToggleLogin ? 0 : 1)
}
如何在配置文件视图中更改登录视图的这些值?
非常感谢您的帮助!
我需要在视图 1 中将视图 2 中的 showProfile 从 false 更改为 true
也许我有什么不懂,但我正在学习!
如果你有很多像上面这样的变量,你也可以将它们捆绑在一个观察对象中,一个 class 符合 ObservableObject 协议。在那里你 @Publish 变量。使用 .enviroment 绕过这些对象或使用 @EnviromentObject 声明对象。那里有很多教程,比如
如果您在一个视图中有一个@State 变量并且您希望在另一个视图中更改它,您可以将该变量定义为另一个视图中的@Binding 并将其传递。
所以在登录视图中你有:
struct LoginView: View {
@State private var showToggleSignup: Bool = false
var body: some View {
ProfileView(showToggleSignp: $showTogglesignup)
}
}
然后个人资料视图如下所示:
struct ProfileView: View {
@Binding var showToggleSignup: Bool
var body: some View {
// Do whatever you need to do
}
}
祝你好运, MacUserT