国家保护和修复问题
Posted
技术标签:
【中文标题】国家保护和修复问题【英文标题】:State Preservation and restoration issue 【发布时间】:2014-05-08 11:48:11 【问题描述】:在我的应用程序中,我需要拨打电话,所以显然我的应用程序在使用本机通话功能拨打电话时进入后台。如果通话时间过长,我的应用程序将被 ios 本身杀死。现在我需要在拨打电话时恢复最后一个视图。我用过原生恢复。 我所做的是
1.为所有视图和视图控制器设置恢复 ID。
2。覆盖应用委托恢复方法。
我的问题是, 如果我的应用程序转到后台并返回前台,则使用保存显示最后一个视图并突然移动到主视图(默认启动视图)。就像最后一个视图在来到前台时闪烁。
这是我的设置:
应用代理代码:
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
return YES;
-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder
return YES;
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder
return YES;
-(BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
return YES;
主视图设置:
主故事板包含作为根的登录视图。请指导我解决恢复问题。
【问题讨论】:
可能是您的应用收到内存警告并且其内存正在被清除。我在 iOS 7 中注意到了这种行为。 我在模拟器本身也面临同样的恢复问题。 查看此链接State Preservation and Restoration。这会对你有所帮助。 @pawan:我没有使用标签栏控制器。我用该文档创建了两个示例,一个以标签栏控制器为根,另一个是以导航控制器为根视图。在第二种情况下保存失败。 它应该适用于您的应用流程。但是如果你有问题,你可以把你的测试代码发给我,我会检查一次。 【参考方案1】:我设法通过设置窗口键并在application:willFinishLaunchingWithOptions:
中可见来消除闪烁。
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[self.window makeKeyAndVisible];
return YES;
【讨论】:
以上是关于国家保护和修复问题的主要内容,如果未能解决你的问题,请参考以下文章
试图用三个表(用户、个人资料、国家)修复我的 Laravel 7 Eloquent 关系
使用ST Flash Download也无法擦除读保护的问题修复
使用ST Flash Download也无法擦除读保护的问题修复