0

我的应用概述

- 在我使用导航控制器时,它位于相应的XIB MainWindow.xib 中。它在应用程序委托中设置为根 vc。

-CategoriesVC 是一个表 vc,它是根 vc 中的顶层 VC。

-BooksCategoryVC(一个类别中的所有书籍)是另一个表 vc,它是在从 CategoriesVC 中选择某些内容后推送的

-BookScrollVC.m 是一个滚动vc,在选择一本书后显示文本。

代码说明

1)在我的应用程序委托中,我已将 shouldSaveApplicationState 和 shouldRestoreApplicationState 设置为返回 YES

2) CategoriesVC 位于 MainWindow XIB 中,我在 IB 和 .m 中设置了恢复标识符,我已经将 restoreClass 设置为 self 并实现了 viewControllerWithRestoreIdentifierPath

3)BooksCategory 有自己的 XIB 并实现了恢复协议,几乎与

4) 与 3) 相同,但 VC 是在代码中实例化的。这里没有XIB。

流动

启动应用程序。一直导航到最后一个 VC (BookScrollVC)。

在模拟器中按下 Home 按钮时:

encodeRestorableStateWithCoder 在 CategoriesVC 中被调用,并且不会继续到其他 VC。它不应该通过所有已经实现恢复协议的VC吗?

从 Xcode 重新启动应用程序时,实际上只viewControllerWithRestorationIdentifierPath调用了 CategoriesVC 中的 。

如果有任何不清楚或您希望查看代码,请告诉我

4

1 回答 1

0

解决方案

如果未设置 restoreidentifier,则应用无法恢复。尽管我已将它们设置在我的自定义初始化程序中,但它似乎不起作用。解决方案是在下一个 vc 被推送之前设置恢复标识符。

我将不得不深入研究,看看是否有更好的解决方案。

于 2013-06-09T10:24:42.403 回答