Я пытаюсь выяснить, как лучше всего перевести пользователя с экрана входа в систему на другой экран. Это то, что я имею до сих пор:
struct ContentView: View {
@EnvironmentObject var userManager: UserManager
var body: some View {
VStack {
if userManager.user == nil {
SignInView()
} else {
MainView().transition(.slide)
}
}
}
}
Идея состоит в том, что изначально userManager.user
будет nil
, и поэтому я покажу SignInView
. Когда пользователь входит в систему, свойство user
обновляется и, поскольку оно равно @Published
, body
из ContentView
должно скользить в MainView.
Это правильный подход? Я также не вижу скольжения MainView. Вместо этого он просто появляется на экране.
Спасибо!
[Обновить]
Это MainView
struct MainView: View {
@EnvironmentObject var userManager: UserManager
var body: some View {
NavigationView {
if self.userManager.user != nil {
List(...) {
...
}
} else {
Text("No User")
}
}
}
}