【问题标题】:Why intermediate view controllers getting restored?为什么要恢复中间视图控制器?
【发布时间】:2025-12-05 13:25:01
【问题描述】:

我正在为我的应用程序使用状态恢复。 我有 vc1 -> vc2 -> vc3。

在 vc3 上,我实现了恢复委托和恢复标识符。但是在 vc1 和 v2 上,我只实现了标识符。

当我到达 vc3 时,它会恢复正常。 但是当我到达 vc2 时,它也会恢复。它只设置了恢复标识符。中间视图控制器是否也得到恢复?我不想要。

【问题讨论】:

    标签: ios iphone state-restoration


    【解决方案1】:

    基本上,UIKit 会恢复设置了重用标识符的视图控制器(包括它们的子视图)。在您的情况下,您已经设置了所有三个视图控制器的标识符。因此,即使您只为 vc3 实现了 UIStateRestoration 方法,您的所有 VC 也会得到恢复。

    您可以尝试单独删除 vc2 的 ReuseID 并运行您的应用,使用完整的 vc3 方法及其重用 ID。由于您的 vc2 没有重用 id,因此 UIKit 不会关心恢复它。删除 vc2 的重用 id 时可能的结果是以下之一:

    1. vc3会被恢复,当你按下它的返回键时,你会直接进入vc1

    2。只有你的 vc1 会被恢复

    【讨论】:

      最近更新 更多