为啥要恢复中间视图控制器?
Posted
技术标签:
【中文标题】为啥要恢复中间视图控制器?【英文标题】:Why intermediate view controllers getting restored?为什么要恢复中间视图控制器? 【发布时间】:2016-10-25 06:56:27 【问题描述】:我正在为我的应用程序使用状态恢复。 我有 vc1 -> vc2 -> vc3。
在 vc3 上,我实现了恢复委托和恢复标识符。但是在 vc1 和 v2 上,我只实现了标识符。
当我到达 vc3 时,它会恢复正常。 但是当我到达 vc2 时,它也会恢复。它只设置了恢复标识符。中间视图控制器是否也得到恢复?我不想要。
【问题讨论】:
【参考方案1】:基本上,UIKit 会恢复设置了重用标识符的视图控制器(包括它们的子视图)。在您的情况下,您已经设置了所有三个视图控制器的标识符。因此,即使您只为 vc3 实现了 UIStateRestoration 方法,您的所有 VC 也会得到恢复。
您可以尝试单独删除 vc2 的 ReuseID 并运行您的应用,使用完整的 vc3 方法及其重用 ID。由于您的 vc2 没有重用 id,因此 UIKit 不会关心恢复它。删除 vc2 的重用 id 时可能的结果是以下之一:
1. vc3会被恢复,当你按下它的返回键时,你会直接进入vc1
2。只有你的 vc1 会被恢复
【讨论】:
以上是关于为啥要恢复中间视图控制器?的主要内容,如果未能解决你的问题,请参考以下文章
UITableView 在 TableView 中间加载单元格。为啥?