【发布时间】:2016-01-04 21:31:29
【问题描述】:
我的应用程序有一个视图控制器,即使用户自己杀死了应用程序,它也必须恢复,而shouldRestoreApplicationState 不会这样做;如果用户杀死了应用程序,我会回到第一个控制器。
那么有没有办法做我想做的事,每次都恢复状态?
如果状态恢复无法做到这一点,我想也许我可以将视图控制器保存到我的持久存储中并从我的 appDelegate 中呈现它,但我还想不通。我必须从 appDelegate 重建整个导航堆栈,包括一个标签栏控制器和多个导航控制器直到该视图。这是一个好主意吗?我该怎么办?
我尝试了这个的变体:
let bookInfoStoryboard = UIStoryboard(name: "BookInfo", bundle: nil)
let controller = bookInfoStoryboard
.instantiateViewControllerWithIdentifier("bookInfoTableViewController")
self.window?.makeKeyAndVisible()
self.window?.rootViewController!.presentViewController(controller, animated: true, completion: nil)
但我不断收到各种错误。
理想情况下,我想恢复每个视图控制器的状态,但它必须每次都发生。有没有更好的方法来做到这一点?
谢谢,
丹尼尔
【问题讨论】:
-
请注意,
UINavigationController有一个您可以设置的viewControllers属性。如果您将rootViewController设为UINavigationController,然后重新创建视图控制器链,您可以一次设置它们,最后一个是可见的。
标签: ios swift appdelegate state-restoration