成功登录后,可以使用登录视图替换下一个视图。例如:
struct LoginView: View { var body: some View { ... }}struct NextView: View { var body: some View { ... }}// Your starting viewstruct ContentView: View { @EnvironmentObject var userAuth: UserAuth var body: some View { if !userAuth.isLoggedin { LoginView() } else { NextView() } }}您应该在数据模型中处理登录过程,并使用绑定(例如)
@EnvironmentObject传递
isLoggedin到视图。
注意: 在Xpre中 11.0版测试4 ,以符合协议 “BindableObject” 的
willChange
属性已被添加
import Combineclass UserAuth: ObservableObject { let didChange = PassthroughSubject<UserAuth,Never>() // required to conform to protocol 'ObservableObject' let willChange = PassthroughSubject<UserAuth,Never>() func login() { // login request... on success: self.isLoggedin = true } var isLoggedin = false { didSet { didChange.send(self) } // willSet { // willChange.send(self) // } }}


