Вы можете заменить следующий вид на ваш вид входа в систему после успешного входа в систему. Например:
struct LoginView: View {
var body: some View {
...
}
}
struct NextView: View {
var body: some View {
...
}
}
// Your starting view
struct ContentView: View {
@EnvironmentObject var userAuth: UserAuth
var body: some View {
if !userAuth.isLoggedin {
LoginView()
} else {
NextView()
}
}
}
Вы должны обрабатывать процесс входа в вашу модель данных и использовать привязки, такие как @EnvironmentObject
, чтобы передать isLoggedin
вашему представлению.
Примечание: В Xcode Версия 11.0 бета 4 для соответствия протоколу 'BindableObject' свойство willChange имеет будет добавлено
class UserAuth: BindableObject {
let didChange = PassthroughSubject<UserAuth,Never>()
// required to conform to protocol 'BindableObject'
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)
// }
}
}