模态视图控制器动画状态恢复
modal view controller animates on state restoration
我在使用 Split View Controller 的通用应用程序的状态恢复方面遇到了一个奇怪的问题。
奇怪的是,我正在以一种非常标准的方式使用故事板和 segues 以及所有相关视图控制器的恢复标识符来做事。实际上并没有任何代码,因为逻辑在情节提要中并且 minimal XCode project 显示了这一点。
问题出在设置屏幕上,该屏幕以模式 sheet 的形式显示在拆分视图控制器中。我的视图控制器层次结构最终是正确的,但转换并没有真正意义。由于某种原因,状态恢复使模态控制器动画到位。
由于屏幕以上次应用程序 运行 的屏幕截图开始,并且设置控制器已经存在,因此动画只是视觉噪音。
我曾尝试在交互输入设置时禁用 segue 上的动画,但是当状态恢复做同样的事情时,动画就在那里。
避免这种情况的标准方法是什么?
在 application(_:willFinishLaunchingWithOptions:)
中调用 self.window?.makeKeyAndVisible()
解决了我的问题。
docs 中的更多信息:
Important
If your app relies on the state restoration machinery to restore its
view controllers, always show your app’s window from this method. Do
not show the window in your app’s
application:didFinishLaunchingWithOptions:
method. Calling the
window’s makeKeyAndVisible
method does not make the window visible
right away anyway. UIKit waits until your app’s
application:didFinishLaunchingWithOptions:
method finishes before
making the window visible on the screen.
我在使用 Split View Controller 的通用应用程序的状态恢复方面遇到了一个奇怪的问题。
奇怪的是,我正在以一种非常标准的方式使用故事板和 segues 以及所有相关视图控制器的恢复标识符来做事。实际上并没有任何代码,因为逻辑在情节提要中并且 minimal XCode project 显示了这一点。
问题出在设置屏幕上,该屏幕以模式 sheet 的形式显示在拆分视图控制器中。我的视图控制器层次结构最终是正确的,但转换并没有真正意义。由于某种原因,状态恢复使模态控制器动画到位。
由于屏幕以上次应用程序 运行 的屏幕截图开始,并且设置控制器已经存在,因此动画只是视觉噪音。
我曾尝试在交互输入设置时禁用 segue 上的动画,但是当状态恢复做同样的事情时,动画就在那里。
避免这种情况的标准方法是什么?
在 application(_:willFinishLaunchingWithOptions:)
中调用 self.window?.makeKeyAndVisible()
解决了我的问题。
docs 中的更多信息:
Important
If your app relies on the state restoration machinery to restore its view controllers, always show your app’s window from this method. Do not show the window in your app’s
application:didFinishLaunchingWithOptions:
method. Calling the window’smakeKeyAndVisible
method does not make the window visible right away anyway. UIKit waits until your app’sapplication:didFinishLaunchingWithOptions:
method finishes before making the window visible on the screen.