【问题标题】:Black screen shown after splash screen - iOS启动画面后显示黑屏 - iOS
【发布时间】:2021-09-17 13:20:55
【问题描述】:

我有一个情节提要文件,我想将其用作初始屏幕。我已将该情节提要中的 ViewController 设置为初始视图。

我也这样设置启动屏幕:

这是我在SceneDelegate 中的代码,用于选择第一个 ViewController 来向用户显示:

   self.window = UIWindow(frame: UIScreen.main.bounds)
   let vc = storyboard.instantiateViewController (withIdentifier: "Channels") as! UINavigationController
   window = UIWindow(windowScene: windowScene)
   window?.rootViewController = vc
   window?.makeKeyAndVisible()

我在第一次启动应用程序时看到启动画面,然后是黑屏;最后是我的用户界面。

【问题讨论】:

  • UINavigationController 是视图控制器吗?
  • 我很惊讶你的应用没有崩溃。
  • 黑屏可能是你显示的代码造成的。尝试删除它。
  • 另外请注意,启动屏幕不是启动屏幕。
  • 我在您的代码中没有看到问题。

标签: ios swift storyboard splash-screen uiscenedelegate


【解决方案1】:

听起来您在某个地方有一个没有背景颜色的初始视图控制器。我建议您浏览您的故事板并检查您是否在右侧面板中选中了“is Initial ViewController”。

【讨论】:

  • 如果在深色主题上运行并将视图颜色设置为系统白色,则它们可能是另一种可能性,它也将显示为黑色。
  • @jatinfl 无论颜色样式如何,如果您没有将视图控制器设置为初始视图控制器,它仍然会显示为黑色。
  • 是的,我知道这就是为什么我只是评论另一种可能性。
  • 是的;我在情节提要中设置了初始视图控制器
【解决方案2】:

检查是否为情节提要中的 ViewController 选择了“is Initial Viewcontroller”。 See this screenshot

【讨论】:

  • 欢迎来到 Stack Overflow。 Initial Viewcontroller 代表 rootViewController 它已经在代码中设置。
  • @jatinfl rootViewController 和 Initial ViewController 是分开的。 Initial View Controller 指的是 Storyboard 的初始 ViewController stackoverflow.com/questions/25252467/…
  • @froggomad 是的,我知道,但是当您使用代码设置 rootview 控制器时,它将忽略故事板中的初始视图控制器。
  • 它实际上并没有被忽略,有 2 个根视图控制器在运行,初始视图控制器可能会短暂显示,因为它被设置为关键窗口的根视图控制器。当我使用窗口的根视图控制器来显示身份验证屏幕而不是转到情节提要的初始视图控制器时,我已经看到了很多这种行为
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多