如何使用 SwiftUI 更改根视图

ali*_*ego 2 ios swiftui

我想使用 SwiftUI 将一个视图替换为另一个视图。

目前,我使用 NavigationView 或 .sheet 转换到新视图,并且可以很好地堆叠视图。

但是我还没有找到一种方法可以用另一个视图完全替换一个视图。例如,当用户首次登陆应用程序时,它将提供登录或创建新帐户的选项。我希望任一选项都可以替换以前的视图,而不是显示在它之上。另一个示例是当用户注销应用程序时。我想关闭整个堆栈并替换为登录屏幕。不只是忽略所有叠加的观点。

与 swiftUI 之前的类比就是替换 rootView。

New*_*Dev 8

您只需在根视图中有条件地显示每个视图

var body: some View {
   if isLoggedIn {
      HomeView()
   } else {
      LoginView() {
   }
}
Run Code Online (Sandbox Code Playgroud)