【发布时间】:2021-05-15 17:26:31
【问题描述】:
我想在多个视图之间共享数据,但更改只影响本地,我想要全局,有没有办法在 swift 或特定的 SwiftUI 中全局更改数据? (注:无绑定)
我的主视图
struct UIController: View {
@ObservedObject var userAuth = AuthUser() // I want to affect this value, isLogin
@State var showLogin:Bool = true
var body: some View {
ZStack {
homeLogin()
.fullScreenCover(isPresented: $userAuth.isLogin, content: AfterLogin.init)
Text("\(String(self.userAuth.isLogin))")
}
}
}
改变值的视图:
struct LoginForm: View {
@StateObject var userAuth = AuthUser()
@State var username:String = ""
@State var passwd:String = ""
@State var isShowPasswd:Bool = false
var body: some View {
Button(action: {
self.userAuth.isLogin = true
}) {
RoundedRectangle(cornerRadius: 10)
.frame(width: UIScreen.screenWidth-100, height: 50, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
.foregroundColor(.purple)
.overlay(
Text("Log In")
.fontWeight(.semibold)
.foregroundColor(.white)
.font(Font.system(size: 20, design: .rounded)))
}
}
}
【问题讨论】: