如何在ios目标中管理状态c

时间:2016-09-13 06:49:23

标签: ios iphone

我是iOS开发的新手。我的问题是,我有两个视图控制器。

  

viewController - 一个viewController - B

现在,如果我从viewController-A中杀了应用程序而不是重新启动应用程序。比app必须打开viewController - A.如果我从viewController-B中杀了应用程序而不是重新启动应用程序。比app必须打开viewController - B.

任何人都可以帮助我,我已经完成了RND但找不到合适的解决方案。

由于

3 个答案:

答案 0 :(得分:1)

  1. 在AppDelegate.m文件中创建sharedDelegate

    +(AppDelegate *)sharedDelegate {

    return(AppDelegate *)[UIApplication sharedApplication] .delegate;

    }

  2. 在appdelgate.h中
  3. +(AppDelegate *)sharedDelegate; @property(非原子,强)NSString * currentViewContoller;

  4. 当推送到anyContoller然后将Appdelegates currentViewContoller设置为新VC

  5. viewController * vc = [[viewController alloc] init]; [self.navigationController pushViewController:vc animated:YES];

    [AppDelegate sharedDelegate] .currentViewContoller = NSStringFromClass([viewController class]);

    1. 现在应用已终止

      • (void)applicationWillTerminate:(UIApplication *)application {

      //应用程序即将终止时调用。如果合适,保存数据。另请参见applicationDidEnterBackground:。

    2. [[NSUserDefaults standardUserDefaults] setObject:[AppDelegate sharedDelegate] .currentViewContoller forKey:@“cuurentVC”];

      }
      

      5现在当应用程序首次启动时,在应用程序终止时检查上一个控制器

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      
          NSString *string=[[NSUserDefaults standardUserDefaults] valueForKey:@"cuurentVC"];
      

      并推送此课程

          UIViewController *object = [[NSClassFromString(string) alloc] init...];
      
      }
      

答案 1 :(得分:0)

您可以使用

applicationWillTerminate,但只有当用户从forground退出应用时才会调用它。如果您的应用处于后台,然后用户退出应用,则applicationWillTerminate将不会被调用。

所以,你必须照顾applicationDidEnterBackground

因此,当app在后台输入(即致电applicationDidEnterBackground)或致电applicationWillTerminate时,请在user defaults中保存状态(您当前的VC)。

现在在didFinishLaunchingWithOptions设置中将控制器视为rootviewcontroller或以任何方式管理它。

参考:Apple documentation for applicationWillTerminate

PS:你不应该像这样管理app。这是可怕的方式!如果可能,请将您的应用程序作为正常流程运行!

答案 2 :(得分:0)

如果您正在使用Storyboards,则可以使用Restoration Identifier通知应用程序哪个控制器作为第一个启动

https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html