登录后如何在 SwiftUI 中显示新视图

Posted

技术标签:

【中文标题】登录后如何在 SwiftUI 中显示新视图【英文标题】:How to present new view in SwiftUI after login 【发布时间】:2020-06-02 04:20:04 【问题描述】:

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

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

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

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

let vc = MainMenuController()

vc.modalPresentationStyle = .fullScreen

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

Sample image of desired outcome

【问题讨论】:

【参考方案1】:

这就是我在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
  

【讨论】:

谢谢你的回答,你在函数 ShowSomeTabView() 和 ShowLoginScreen() 中是做什么的?我认为这可能会回答我最初的问题。

以上是关于登录后如何在 SwiftUI 中显示新视图的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中再次初始化 View?

如何导航到 SwiftUI 设置的新视图

SwiftUI:如何在单击 ActionSheet 按钮时呈现新视图?

在 SwiftUI 中,如何根据异步调用确定要显示的视图

SwiftUI:如何根据日期每天显示一个新视图,而以前的视图持续一周

在 SwiftUI 中更改完成视图