7

对于具有拆分视图控制器的通用应用程序的状态恢复,我遇到了一个奇怪的问题。

奇怪的是,我使用 Storyboard 和 segues 以及所有相关视图控制器的恢复标识符以非常标准的方式做事。实际上没有任何代码,因为逻辑在 Storyboard 中,并且一个最小的 XCode 项目显示了这一点。

问题在于设置屏幕以模态方式显示为从拆分视图控制器呈现的表单。我的视图控制器层次结构最终是正确的,但转换并没有真正意义。由于某种原因,状态恢复使模态控制器动画到位。

由于屏幕以上次运行应用程序时的屏幕截图开始,并且设置控制器已经存在,因此动画只是视觉噪音。

我试图禁用 segue 上的动画,这是在交互式输入设置时受到尊重的,但是当状态恢复做同样的事情时,动画就在那里。

避免这种情况的标准方法是什么?

4

1 回答 1

12

打电话self.window?.makeKeyAndVisible()application(_:willFinishLaunchingWithOptions:)我解决了这个问题。

文档中的更多信息:

重要的

如果您的应用依赖状态恢复机制来恢复其视图控制器,请始终通过此方法显示应用的窗口。不要在应用程序的 application:didFinishLaunchingWithOptions:方法中显示窗口。无论如何,调用窗口的makeKeyAndVisible方法不会使窗口立即可见。UIKit 会等到您的应用程序的 application:didFinishLaunchingWithOptions:方法完成后才使窗口在屏幕上可见。

于 2017-04-17T09:23:59.590 回答