首页 > 解决方案 > 登录后如何在 SwiftUI 中显示新视图

问题描述

我需要知道谁使用 SwiftUI(遵循 MVVM 设计模式)呈现新视图。

例如,一旦用户输入凭据进行登录,按下“登录”按钮应该会将他们带到应用程序的主页,而无法返回登录页面。

我一直在查看来自 Apple 的文档以及 Stackoverflow 中的其他问题,但它们似乎都在使用导航视图(即顶部有一个导航栏,允许用户返回上一个视图)。

下面是我将如何使用 UIKit 完成此操作的代码,以及一个直观地表示我想要完成的图像的图像。

let vc = MainMenuController()

vc.modalPresentationStyle = .fullScreen

self.present(vc, animated: true, completion: nil);

期望结果的示例图像

标签: iosswiftmvvmswiftuiswiftui-navigationlink

解决方案


这就是我在我的代码中实现它的方式ContentView.swift

@State var loggedIn: Bool = false

var body: some View {
  VStack {
    if loggedIn {
      ShowSomeTabView()
    } else {
      ShowLoginScreen()
    }
  }.onAppear {
    self.checkAuthorized()
  }
}

private func checkAuthorized() {
  if loggedIn() {
    self.loggedIn = true
  }
}

推荐阅读