Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么要恢复中间视图控制器?_Ios_Iphone_State Restoration - Fatal编程技术网

Ios 为什么要恢复中间视图控制器?

Ios 为什么要恢复中间视图控制器?,ios,iphone,state-restoration,Ios,Iphone,State Restoration,我正在为我的应用程序使用状态恢复。 我有vc1->vc2->vc3 在vc3上,我实现了恢复委托和恢复标识符。但在vc1和v2上,我只实现了标识符 当我到达vc3时,它会恢复,这很好。 但当我接触到vc2时,它也会恢复。并且它只设置了恢复标识符。中间视图控制器是否也得到恢复?我不想要它。基本上,UIKit恢复设置了重用标识符的视图控制器(包括其子视图)。在本例中,您已经设置了所有三个视图控制器的标识符。所以你所有的VC都会被恢复,即使你只为vc3实现了恢复方法 您可以尝试单独删除vc2的Reus

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

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

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

基本上,UIKit恢复设置了重用标识符的视图控制器(包括其子视图)。在本例中,您已经设置了所有三个视图控制器的标识符。所以你所有的VC都会被恢复,即使你只为vc3实现了恢复方法

您可以尝试单独删除vc2的ReuseID,并运行应用程序,同时vc3方法与其重用id保持不变。由于您的vc2没有重用id,UIKit不会关心恢复它。删除vc2的重用id时可能出现以下结果之一:

1。vc3将被恢复,当您按下其上的“后退”按钮时,您将直接进入vc1


2。只有vc1会被还原

基本上UIKit会还原设置了重用标识符的视图控制器(包括其子视图)。在本例中,您已经设置了所有三个视图控制器的标识符。所以你所有的VC都会被恢复,即使你只为vc3实现了恢复方法

您可以尝试单独删除vc2的ReuseID,并运行应用程序,同时vc3方法与其重用id保持不变。由于您的vc2没有重用id,UIKit不会关心恢复它。删除vc2的重用id时可能出现以下结果之一:

1。vc3将被恢复,当您按下其上的“后退”按钮时,您将直接进入vc1

2。只有您的vc1将被恢复