模态视图控制器动态状态恢复

时间:2016-08-22 11:51:48

标签: ios state-restoration

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

奇怪的是,我正在以非常标准的方式使用故事板和segues以及相关视图控制器的恢复标识符。实际上没有任何代码,因为逻辑在故事板中,而minimal XCode project显示了这一点。

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

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

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

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

1 个答案:

答案 0 :(得分:10)

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

docs中的更多信息:

  

重要

     

如果您的应用程序依赖状态恢复机制来恢复它   查看控制器,始终显示此方法的应用程序窗口。做   不显示应用程序中的窗口   application:didFinishLaunchingWithOptions:方法。打电话给   窗口的makeKeyAndVisible方法不会使窗口可见   马上就这么快。 UIKit等到你的应用程序   application:didFinishLaunchingWithOptions:方法之前完成   使窗口在屏幕上可见。