Ios 强制应用程序在进入后台时始终以相同的形式运行
我正在开发一个包含许多表单的应用程序,用户可能在其中任何一个表单中,并决定将应用程序转到后台。 当应用程序进入后台时,如何强制它始终以相同的形式运行 为了避免疑义,我试图用例子更好地解释: 我的应用程序中有45个视图。用户可以在视图1、2、3、4。。。。但当他将应用程序置于后台时,我想立即转到View 9。 多谢各位 您应该在应用程序中实现Ios 强制应用程序在进入后台时始终以相同的形式运行,ios,objective-c,background,Ios,Objective C,Background,我正在开发一个包含许多表单的应用程序,用户可能在其中任何一个表单中,并决定将应用程序转到后台。 当应用程序进入后台时,如何强制它始终以相同的形式运行 为了避免疑义,我试图用例子更好地解释: 我的应用程序中有45个视图。用户可以在视图1、2、3、4。。。。但当他将应用程序置于后台时,我想立即转到View 9。 多谢各位 您应该在应用程序中实现 UIKit中的状态保存系统提供了一个简单但灵活的 用于保存和恢复应用程序状态的基础结构 视图控制器和视图 基础设施的工作是推动 在适当的时间进行保存和恢复过
UIKit
中的状态保存系统提供了一个简单但灵活的
用于保存和恢复应用程序状态的基础结构
视图控制器和视图
基础设施的工作是推动
在适当的时间进行保存和恢复过程。
为此,UIKit
需要应用程序的帮助。只有你明白这个道理
应用程序的内容,因此只有您可以编写保存所需的代码
并恢复该内容
当您更新应用程序的UI
时,只有您
了解如何将较旧的保留内容映射到存储库中较新的对象
接口
有三个地方需要考虑在应用程序中保存状态:
- 您的应用程序委派对象,用于管理应用程序的顶级状态
- 应用程序的视图控制器对象,用于管理应用程序用户界面的整体状态
- 应用程序的自定义视图,其中可能有一些需要保留的自定义数据
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(applicationDidEnterBackground:)
name:UIApplicationDidEnterBackgroundNotification
object:nil];
}
View 9将在应用程序进入后台时等待通知
同一观点认为:
- (void)applicationDidEnterBackground:(NSNotification *)notification {
[self performSegueWithIdentifier:@"main" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"main"]) {
View9 *view9 = segue.destinationViewController;
[view9 setDelegate:self];
...
}
}
当应用程序进入后台时(无论视图是什么),iOS将发送通知,而视图9(即观察视图)将触发事件ApplicationIdentinterBackground,我将手动调用事件PrepareForsgue
在故事板序列中,有一个标识符“main”指向视图9 保存状态,恢复状态?如果它只是进入后台,你不必做任何事情。如果用户关闭了应用程序,唯一的方法就是保存状态并将其加载到下一个StartHanks reecon上以便重播,但这种解决方案对我来说并不好。也许我没有解释清楚。当应用程序转到后台时,我必须更改视图。当应用程序关闭时,我没有问题。