【问题标题】:Displaying iOS LaunchScreen for longer time长时间显示 iOS LaunchScreen
【发布时间】:2015-09-15 12:00:20
【问题描述】:

前段时间,我们决定将应用程序加载逻辑放入一个单独的函数中,该函数在 DidFinishLaunching 之后调用。我们通过展示一个包含默认启动图像的新 UIViewController 来实现(如 here 所述)。造成这种情况的两个原因是:

  • 我们可以在闪屏上自动显示当前版本号。
  • 如果加载时间超过大约 10 - 15 秒,则应用程序将被操作系统杀死。直到现在,我们在版本更新期间曾经遇到过这种情况,其中大型数据库/文件重组需要长达 15 秒。如果应用程序被操作系统杀死,数据就会处于损坏状态。

这很好用。现在自从 iOS 8 发生了一些变化,我们应该使用启动屏幕 xib 或故事板。我试图在 UIViewController(我们自己的启动屏幕)中加载 xib,但这导致了 NSInternalInconsistencyException - 加载了“”笔尖但未设置视图出口。我发现,启动屏幕必须是纯static,与原始启动图像相同。

我喜欢只有一个启动屏幕而不是十几个启动图像的概念。我会怎么做?有没有办法以编程方式加载原始启动屏幕 xib 并在我自己的启动屏幕视图控制器中显示它?当然,我还想像以前那样以编程方式添加版本号。

编辑:在 DidFinishLaunching() 中让应用程序进入睡眠状态不是一种选择,请参见上面的第二点。

【问题讨论】:

  • 最好在发布时将viewcontroller 显示为splash screen,您可以将其保留在屏幕上,只要您愿意。没有其他方法可以让启动屏幕保持更长时间。
  • 我希望给出的答案对你有帮助@Philipp。
  • 可能显示加载动画?
  • @Dipen:这正是我想要实现的。只是我想将原始的 LaunchScreen.xib 加载到我自己的视图控制器中,这显然是不可能的,因为当 xib 被标记为“用作启动屏幕”时,它不能有任何插座(需要在视图控制器中加载 xib)。

标签: ios objective-c ios8 xamarin


【解决方案1】:

您不能长时间保持启动屏幕。

您可以在applicationdidFinishLoading 中添加ViewControllerdefault.png。显示此控制器几秒钟(5 秒)并替换为下一个视图控制器。

Note: 根据应用商店指南状态,您不应该 你的延迟启动时间超过了必要的时间。

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    相关资源
    最近更新 更多