我正在为我的应用程序使用状态恢复。我有 vc1 -> vc2 -> vc3。
在 vc3 上,我实现了恢复委托和恢复标识符。但是在 vc1 和 v2 上,我只实现了标识符。
当我到达 vc3 时,它会恢复正常。但是当我到达 vc2 时,它也会恢复。它只设置了恢复标识符。中间视图控制器是否也得到恢复?我不想要它。
我正在为我的应用程序使用状态恢复。我有 vc1 -> vc2 -> vc3。
在 vc3 上,我实现了恢复委托和恢复标识符。但是在 vc1 和 v2 上,我只实现了标识符。
当我到达 vc3 时,它会恢复正常。但是当我到达 vc2 时,它也会恢复。它只设置了恢复标识符。中间视图控制器是否也得到恢复?我不想要它。
基本上 UIKit 会恢复设置了 Reuse Identifiers 的视图控制器(包括它们的子视图)。在您的情况下,您已经设置了所有三个视图控制器的标识符。因此,即使您只为 vc3 实现了 UIStateRestoration 方法,您的所有 VC 也会得到恢复。
您可以尝试单独删除 vc2 的 ReuseID并运行您的应用程序,其中vc3方法及其重用 id 保持不变。由于您的vc2没有重用 id,因此 UIKit 不会关心恢复它。删除 vc2 的重用 id 时的可能结果是以下之一:
1. vc3会被恢复,当你按下它的返回键时,你会直接进入vc1
2.只有你的vc1会被恢复