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

标签: ios objective-c ios7


【解决方案1】:

我设法通过设置窗口键并在application:willFinishLaunchingWithOptions: 中可见来消除闪烁。

- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [self.window makeKeyAndVisible];
    return YES;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多