自动从启动屏幕快速 UI 导航到另一个屏幕,并带有延迟时间

2024-02-01

我是 IOS 和 Swift UI 的新手,在启动屏幕后无法导航到登录屏幕。我如何导航到登录屏幕?请帮帮我!我真的很感谢你们的所有回答。

import SwiftUI
import Dispatch

struct SplashScreen: View {
    let login = LoginScreen()
    let color = Color.init("black_1")
//    let color = Color.white
    var body: some View {
        let stack = VStack(alignment: .center){
            Image("logo")
            }.background(color).onAppear(perform: {
            gotoLoginScreen(time: 2.5)
        })

        return stack
    }
}

func gotoLoginScreen(time: Double){
    DispatchQueue.main.asyncAfter(deadline: .now() + Double(time)) {
        print("gotoLoginScreen")
    }
    return
}

struct SplashScreen_Previews: PreviewProvider {
    static var previews: some View {
        SplashScreen()
    }
}

考虑到您可能不想在已经进入启动屏幕后返回到启动屏幕LoginScreen我建议另一种方法,特别是改变rootView of the UIHostingController in SceneDelegate.

如果您想推送到下一个屏幕,您可以使用以下代码重构:

struct SplashScreen: View {
    @State private var isActive = false
    let login = LoginScreen()
    let color = Color.init("black_1")

    var body: some View {
        NavigationView {
            VStack(alignment: .center) {
                Image("logo")
                NavigationLink(destination: login,
                               isActive: $isActive,
                               label: { EmptyView() })
            }
            .background(color)
            .onAppear(perform: {
                self.gotoLoginScreen(time: 2.5)
            })
        }
    }

    func gotoLoginScreen(time: Double) {
        DispatchQueue.main.asyncAfter(deadline: .now() + Double(time)) {
            self.isActive = true
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动从启动屏幕快速 UI 导航到另一个屏幕,并带有延迟时间 的相关文章

随机推荐

  • *** `python3' 中的错误:free():无效指针:0xb70c3578 *** 中止(核心转储)

    我几天前从源代码安装了Python3 6 5 一切都很好 但现在每当我尝试使用 python 命令行解释器执行某些操作时就会出现错误 那是 当我打字时python3进入我的 Ubuntu 14 04 的终端 它显示 Python 3 6 5
  • com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector 未找到 --- 使用 Swagger 时

    我关于 SO 的第一篇文章并期待好的回报 我开发了一个小型java Restful 服务应用程序并与Swagger 集成 我有 Controller gt Service gt Repository 架构 我已经部署在 Glassfish
  • Swift,spritekit:在应用程序购买代码运行时,什么也没有发生?

    好的 我正在 Swift 中工作 我只需要帮助 我已经遵循了 4 个不同的教程 了解如何使用 Swift 在 sprite 套件中实现应用内购买 逐字复制代码 但没有任何效果对我有用 以下是我已采取的步骤 进入 Itunes Connect
  • 编程错误:无法适应类型“set”

    我正在使用 Python 将 Excel 数据导入 postgreSQL 并遇到编程错误 我确实研究了这个问题 发现它与 postgreSQL 有关 有人可以提供帮助吗 import psycopg2 import xlrd book xl
  • 哪些 C# 数据类型不可 WCF 序列化?

    我们有 C 实体类 它们映射到我们的一些 SQL Server 数据库表 我们需要能够序列化这些类 以便通过 WCF 将它们从服务器发送回客户端 对于每个 SQL Server 数据类型 我们在关联实体中都有一个相应的 C CLR 数据类型
  • 找出 Java 8 中两个集合的区别?

    我正在尝试做一个List将所有书籍合二为一Collection是其他人所不存在的 我的问题是我需要根据图书 ID 进行比较 所以我不能只测试第一个集合中的书是否包含在第二个集合中 我必须确定第二个集合中的任何书是否具有与第二个集合相同的 I
  • 保存、组织和查询产品、选项/标签和类别

    首先 让我澄清一下 我并不是要求任何代码 而是要求任何代码 我只是想要一些关于如何实现我要问的问题的一般想法 指导 意见 我开始构建一个在线电子商务系统 Yii2 MongoDB 所以 PHP NoSQL 有两个先决条件我不完全确定如何实现
  • IOS PWA 中默认在 webview 中打开外部链接

    我正在 IOS 11 3 中测试渐进式 Web 应用程序 我的 pwa 有一个 Facebook 社交登录按钮 单击该按钮会指向外部链接 不同的 windows location 问题是 PWA 打开 Safari 应用程序来显示外部链接
  • 原则 2:无法更新 SQL Server 2008apm 上的 DateTime 列

    我在 apache 服务器上使用 Doctrine 2 2 和 php 5 3 到目前为止 我偶然发现了以下问题 当我尝试更新日期时间列时 我得到 SQLSTATE 22007 Microsoft SQL Server Native Cli
  • Eclipse - Docker 集成

    我正在寻找一种将 Docker 容器与 Eclipse 平台集成的方法 我想在容器内运行所有构建 测试 调试命令 并在持续集成构建和稍后的生产中使用相同的容器 我看到的最简单的方法就是配置自定义命令 但除了权限问题 docker 必须以 s
  • 如果布尔属性为 true,则生成字符串(karma 对应于 qi::matches)

    想象一下 我们想要使用 Boost Spirit 解析并生成简单的 C 成员函数声明 Qi 语法可能如下所示 function type gt id gt gt matches const 这意味着 该函数是否const存储在一个bool
  • 通过递归查找数组中最大的正整数

    我决定以递归方式实现一个非常简单的程序 看看 Java 处理递归 的效果如何 但结果有点短 这就是我最终写的 public class largestInIntArray public static void main String arg
  • Google Maps API v3 SVG 标记消失

    我正在使用 SVG 路径表示法来使用 Google Maps API v3 创建标记和折线 有时 添加一些标记后 它们就会停止在地图上显示 如果我平移地图 即使只是 1 像素 它们也会再次显示 SVG markers stop showin
  • StackTrace 类方法在发布模式下不起作用

    下面是我用来记录错误详细信息的代码 StackTrace sTrace new StackTrace true string functionname Environment NewLine MethodName sTrace GetFra
  • 禁用 apache mod_proxy_balancer 上的粘性

    我想配置 Apache Web Server 以满足以下要求 在 server1 工作时访问它 仅当server1没有响应时才访问server2 当server1响应时 再次访问server1 为此 我尝试使用 mod proxy bala
  • 使用 Kotlin 序列化反序列化通用对象

    我正在尝试用以下方式替换 Gson 库科特林序列化 https github com Kotlin kotlinx serialization处理 JSON 序列化 反序列化 我在反序列化通用对象时面临一些问题 我设置了一个简单的示例来说明
  • 比较 GIT 裸存储库和 bitbucket 存储库

    如何确保我的裸存储库和我的 bitbucket 存储库相同 我做的第一件事就是查看日志 但这可能还不够 对吗 创建本地存储库 为您的裸存储库添加远程 为您的 bitbucket 存储库添加远程 从两个存储库中获取 验证相应的分支是否指向相同
  • 如何在 Highcharts 中创建堆积图图例的表格?

    这是 highchart 中堆栈图的 javascript 代码 legend align right x 70 verticalAlign top y 20 floating true backgroundColor Highcharts
  • 如果脚本失败则引发异常

    我有一个 python 脚本 tutorial py 我想从文件 test tutorial py 运行此脚本 该文件位于我的 python 测试套件中 如果tutorial py执行没有任何异常 我希望测试通过 如果在执行tutorial
  • 自动从启动屏幕快速 UI 导航到另一个屏幕,并带有延迟时间

    我是 IOS 和 Swift UI 的新手 在启动屏幕后无法导航到登录屏幕 我如何导航到登录屏幕 请帮帮我 我真的很感谢你们的所有回答 import SwiftUI import Dispatch struct SplashScreen V