ios - 如何在没有按钮的情况下以编程方式显示 SwiftUI 视图
问题描述
我现在有一个问题: 我想要什么:应用程序第一次启动时,我已经存在的视图应该呈现出来。我已经在 AppDelegate 中实现了一些东西来检查应用程序是否是第一次启动。如果是这样的话,应该提出另一种观点。有没有一种方法可以像使用 Storyboard 一样直接在 AppDelegate 中执行此操作?
先感谢您。
解决方案
RootView
我将创建一个仅在内容之间切换并提供EnvironmentValues
传递给它的初始值。
struct RootView: View {
@Environment(\.isInitialLaunch) var isInitialLaunch: Bool
var body: some View {
Group {
if isInitialLaunch {
FirstTimeView()
} else {
ContentView()
}
}
}
然后,在SceneDelegate
:
self.window?.rootViewController = UIHostingController(rootView: RootView().environment(\.isInitialLaunch, isInitialLaunch))
或者,创建isInitialLaunch
一个@State
(或@Binding
、@ObservedObject
等)变量。这样,在您的入职流程之后,如果您将其更改为false
,SwiftUI 实际上会自动将用户设置为ContentView
.
推荐阅读
- android - 改变活动后亮度恢复正常
- sql - 条件 regexp_replace Oracle / PLSQL
- css - Bootstrap翻转动画高度2px
- vba - Outlook 不通过 VBA 保存附件
- scala - 向量与火花中的向量
- java - 在文本字段 javafx 上显示红点
- mysql - 在 MySQL 中存储几个/多个不同类型的变量 - 推荐的方法是什么?
- python - 获取已上传的 blob/文件的 Firebase 存储令牌
- java - 在 JDBC 中使用 isWrapperFor 和解包函数的正确方法是什么?
- sql-server - 如何调试专有 SQL 数据库中的问题