为什么iOS启动屏幕然后快照然后主屏幕?
当我关闭iOS应用程序并重新启动它时,我看到的屏幕的快速顺序是为什么iOS启动屏幕然后快照然后主屏幕?,ios,swift,appdelegate,Ios,Swift,Appdelegate,当我关闭iOS应用程序并重新启动它时,我看到的屏幕的快速顺序是 启动屏幕。在LaunchScreen.storyboard中定义的屏幕 快照。上次将我的应用程序放在后台时iPhone创建的屏幕图像 主屏幕。我在AppDelegate的应用程序中设置的ViewController(\uUdidFinishLaunchingWithOptions:)方法 从我阅读的苹果文档来看,在应用程序启动期间,如果存在快照,iOS将使用该快照而不是启动屏幕。为什么我同时看到启动屏幕和快照 此屏幕记录显示问题。启
LaunchScreen.storyboard
中定义的屏幕AppDelegate
的应用程序中设置的ViewController
(\uUdidFinishLaunchingWithOptions:)
方法我无法证实你的描述。我的测试表明,如果你过早地终止了你的应用程序,那么在下一次发布时,上一次的背景屏幕截图将被丢弃,只使用启动屏幕 这是我的测试:
- 发射屏幕是红色的
- 初始视图控制器的视图为白色
- 次视图控制器的视图为绿色
可能您的测试程序有问题(仅在设备上测试)。可能您启动到错误的屏幕,然后跳回打开的屏幕(这似乎是最可能的解释)。您是否使用状态保留并调用
忽略SnapshotOnnextApplicationLaunch()
?如果不是,这与问题有什么关系?即使是这样,如果你人为地杀死你的应用程序,也不会有状态保留,也无法调用该方法。我不是在调用ignoresnapshottonnextapplicationlaunch()
。我没有使用国家保护。在创建屏幕截图的过程中,应用程序/iOS似乎正在进行状态保存。不,状态保存是指您是否进行了操作。截图的制作与此无关。你的故事板是否开启了国家保护?我也有同样的问题,这真的困扰了我好几天。。。在我的例子中,它只在打开“多窗口”时发生。我重新创建了您的测试,但仍然有相同的意外结果。屏幕截图/绿色在启动/白色和主/红色之间闪烁。请查看我添加到原始帖子的屏幕录制链接。酷!现在我们需要弄清楚区别是什么。:)这一次,我完全用故事板创建了这个应用程序。更改启动屏幕的颜色。将主屏幕包装在导航控制器中。在主屏幕上添加一个按钮以显示第二个/绿色屏幕。就这样。我对一个应用程序做了同样的操作,它有LaunchScreen.storyboard
和所有其他以编程方式创建和显示的视图。iPhone 6上的结果相同。是的,我的应用程序和你的一样。-为什么你有一个红色的状态栏?这是什么iOS版本?红色状态栏表示我正在进行屏幕录制。我在iPhone 6上使用iOS 12.1.1。我用Xcode 10.1创建了这个应用程序。