【发布时间】: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:我没有使用标签栏控制器。我用该文档创建了两个示例,一个以标签栏控制器为根,另一个是以导航控制器为根视图。在第二种情况下保存失败。
-
它应该适用于您的应用流程。但是如果你有问题,你可以把你的测试代码发给我,我会检查一次。
标签: ios objective-c ios7