首页 > 解决方案 > 如何在没有按钮的情况下以编程方式显示 SwiftUI 视图

问题描述

我现在有一个问题: 我想要什么:应用程序第一次启动时,我已经存在的视图应该呈现出来。我已经在 AppDelegate 中实现了一些东西来检查应用程序是否是第一次启动。如果是这样的话,应该提出另一种观点。有没有一种方法可以像使用 Storyboard 一样直接在 AppDelegate 中执行此操作?

先感谢您。

标签: iosviewswiftui

解决方案


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.


推荐阅读