问题描述
我正在尝试为我的应用启用状态恢复,但我无法解决。我已经为故事板中的所有视图控制器设置了唯一的恢复标识符。我在应用程序委托上覆盖了这些方法:
func application(_ application: UIApplication,shouldSaveSecureApplicationState coder: NSCoder) -> Bool {
return true;
}
func application(_ application: UIApplication,shouldRestoreSecureApplicationState coder: NSCoder) -> Bool {
return true;
}
我不知道我还能做什么。我尝试将断点放在 encodeRestorableState
和 decodeRestorableState
内,但在连接调试器时似乎没有调用它们。我正在使用故事板,所以我的理解是其他一切都应该自动发生。
为了测试状态恢复,我在模拟器中运行应用程序,更改状态(在选项卡栏中选择一个选项卡),在模拟器中按下主页按钮,从 Xcode 退出应用程序,最后再次从通过单击主屏幕上的图标来运行模拟器。有一小会儿,我可以看到我之前选择的选项卡,但随后它切换到第一个选项卡。
据我所知,这应该是我需要做的全部。我已经尝试了一些触发状态恢复的过程,比如在 iOS 任务切换器中关闭应用程序,但它们都有相同的结果。我在某些地方读到我需要创建视图控制器实例,但如果我使用的是故事板,则不需要这样做。
我认为标签栏中当前选定的项目可能不会自动保存和恢复,所以我尝试将其放入标签栏视图控制器中:
override func encodeRestorableState(with coder: NSCoder) {
coder.encode(selectedindex,forKey: "selectedindex");
super.encodeRestorableState(with: coder);
}
override func decodeRestorableState(with coder: NSCoder) {
super.decodeRestorableState(with: coder);
selectedindex = coder.decodeInteger(forKey: "selectedindex");
}
那没有效果。我不知道我做错了什么。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)