Ios 强制应用程序在进入后台时始终以相同的形式运行

Ios 强制应用程序在进入后台时始终以相同的形式运行,ios,objective-c,background,Ios,Objective C,Background,我正在开发一个包含许多表单的应用程序,用户可能在其中任何一个表单中,并决定将应用程序转到后台。 当应用程序进入后台时,如何强制它始终以相同的形式运行 为了避免疑义,我试图用例子更好地解释: 我的应用程序中有45个视图。用户可以在视图1、2、3、4。。。。但当他将应用程序置于后台时,我想立即转到View 9。 多谢各位 您应该在应用程序中实现 UIKit中的状态保存系统提供了一个简单但灵活的 用于保存和恢复应用程序状态的基础结构 视图控制器和视图 基础设施的工作是推动 在适当的时间进行保存和恢复过

我正在开发一个包含许多表单的应用程序,用户可能在其中任何一个表单中,并决定将应用程序转到后台。 当应用程序进入后台时,如何强制它始终以相同的形式运行

为了避免疑义,我试图用例子更好地解释: 我的应用程序中有45个视图。用户可以在视图1、2、3、4。。。。但当他将应用程序置于后台时,我想立即转到View 9。 多谢各位

您应该在应用程序中实现

UIKit
中的状态保存系统提供了一个简单但灵活的 用于保存和恢复应用程序状态的基础结构 视图控制器和视图

基础设施的工作是推动 在适当的时间进行保存和恢复过程。 为此,
UIKit
需要应用程序的帮助。只有你明白这个道理 应用程序的内容,因此只有您可以编写保存所需的代码 并恢复该内容

当您更新应用程序的
UI
时,只有您 了解如何将较旧的保留内容映射到存储库中较新的对象 接口

有三个地方需要考虑在应用程序中保存状态:

  • 您的应用程序委派对象,用于管理应用程序的顶级状态
  • 应用程序的视图控制器对象,用于管理应用程序用户界面的整体状态
  • 应用程序的自定义视图,其中可能有一些需要保留的自定义数据
研究:


我使用通知解决了问题

在视图9中,我写道:

- (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上以便重播,但这种解决方案对我来说并不好。也许我没有解释清楚。当应用程序转到后台时,我必须更改视图。当应用程序关闭时,我没有问题。