ios - 如何在 SwiftUI 中全屏显示 View ?

我工作到登录view ,现在我要介绍 view登录后,但我不希望用户有可能返回登录view .在 UIkit我用了present() , 但似乎在 SwiftUI presentation(_ modal: Modal?) view不占用整个屏幕。 Navigation也不是一个选择。

谢谢!

最佳答案

I do not want the user to have the possibility to return to the login view



在这种情况下,您不应该远离登录 View ,而是完全替换它。

您可以通过有条件地构建登录 View 或“应用程序 View ”来做到这一点。

像这样的东西...
// create the full screen login view
struct LoginView: View {
    // ...
}

//create the full screen app veiw
struct AppView: View {
    // ...
}

// create the view that swaps between them
struct StartView: View {
    @EnvironmentObject var isLoggedIn: Bool // you might not want to use this specifically.

    var body: some View {
        isLoggedIn ? AppView() : LoginView()
    }
}

通过使用这样的模式,您不会呈现或离开登录 View ,而是完全替换它,因此它根本不再位于 View 层次结构中。

这可确保用户无法导航回登录屏幕。

同样...通过使用 @EnvironmentObject像这样,您可以稍后对其进行编辑(退出),您的应用程序将自动返回登录屏幕。

https://stackoverflow.com/questions/56557979/

相关文章:

amazon-web-services - 提供的证书不是有效的自签名证书。请提供有效的自签名证书或

docker - 使用 Dockerfile 中的 COPY 在目标目录中复制具有不同名称的文件

xpages - 适用于 Domino Designer V10 的 Openntf Domino

maven - 将 Artifact 安装到特定的远程 Maven 存储库

amazon-web-services - AWS Api Gateway作为HTTP代理正在破坏二

java-8 - 坚持使用 Java 8 流

audio - 在网络服务器上播放 Apple 的 .caf 音频文件?

html - ng服务一次时如何防止自动重新加载页面?

xcode - 如何解决错误 'app' 的配置设置冲突。 "app"已自动签名,

SQL Server - 检查给定的日期+时间是否在两个日期时间变量之间的确切日期+时间