对于具有拆分视图控制器的通用应用,我遇到了一个奇怪的状态恢复问题。
奇怪的是,我正在以非常标准的方式使用故事板和segues以及相关视图控制器的恢复标识符。实际上没有任何代码,因为逻辑在故事板中,而minimal XCode project显示了这一点。
问题在于设置屏幕以模态方式显示为从拆分视图控制器显示的表单。我的视图控制器层次结构最终正确,但转换并不真正有意义。由于某种原因,状态恢复将模态控制器激活到位。
由于屏幕从上次应用程序运行时的屏幕截图开始,设置控制器已经存在,动画只是视觉噪音。
我试图在交互式输入设置时禁用segue上的动画,但是当状态恢复做同样的事情时,动画就在那里。
避免这种情况的标准方法是什么?
答案 0 :(得分:10)
在self.window?.makeKeyAndVisible()
中拨打application(_:willFinishLaunchingWithOptions:)
为我解决了这个问题。
docs中的更多信息:
重要强>
如果您的应用程序依赖状态恢复机制来恢复它 查看控制器,始终显示此方法的应用程序窗口。做 不显示应用程序中的窗口
application:didFinishLaunchingWithOptions:
方法。打电话给 窗口的makeKeyAndVisible
方法不会使窗口可见 马上就这么快。 UIKit等到你的应用程序application:didFinishLaunchingWithOptions:
方法之前完成 使窗口在屏幕上可见。