Проблема сохранения и восстановления состояния в iOS с использованием MMDrawer

Я интегрировал библиотеку MMDrawerController в приложении iOS, и теперь у меня есть требование Восстановить состояние приложения, даже несмотря на то, что приложение убито в фоновом режиме (только когда приложение вводится от переднего плана до фона), он отлично работает с обычным навигационным приложением, но когда я изменяю навигацию с помощью параметра " setCenterViewController" в моем приложении, восстановление не работает должным образом, и я следил за всей инструкцией, представленной в этом ссылка: " https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/PreservingandRestoringState.html"

Я использовал параметр setCenterViewController (рекомендуется из MMDrawer) для перехода к определенному экрану, а затем удаленное приложение в фоновом режиме. Когда мы открываем его, он запускается с начальным экраном по умолчанию, но мы ожидаем, что он снова откроется с Перед тем, как войти в фоновый режим, он появится на экране.

и вот фрагмент кода:

AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
appDelegate.homeController.navigationController.navigationBarHidden = YES;
HomeViewController *homeVC = [[HomeViewController alloc] initWithNibName:@"HomeViewController" bundle:nil];
UINavigationController *_navg = [[UINavigationController alloc]initWithRootViewController:homeVC];
_navg.restorationIdentifier = @"homeNavigationController";
homeVC.title = [self.dataSource objectAtIndex:indexPath.row]; homeVC.restorationIdentifier = @"HomeViewController";
[appDelegate.drawerController setCenterViewController:_navg withCloseAnimation:YES completion:nil];
self.currentViewController = _navg;
self.currentViewController.restorationIdentifier = @"homeNavigationController"; 

Помогите решить эту проблему.

Ответ 1

Вы можете легко сохранить состояние путем сохранения состояний в NSUUserDefault Выполните следующие действия: 1.При первом запуске приложения.

  {
      UserDefaults.standard.set("0", forKey: "state")
     UserDefaults.standard.synchronize()
   }

2. Когда вы убьете приложение, сохраните состояние

   {    
            UserDefaults.standard.set("1", forKey: "state")
             UserDefaults.standard.synchronize()
        }

3. When you relaunch the app get the state ,setup the drawer and move to particular controller using it navigation controller.



 if let state = UserDefaults.standard.object(forKey: "state") as? String{
         switch state{
                case "0":
                        //Do setup for MMDrawer for center ,left and right view
                        break
                case "1":
                        //Do setup for MMDrawer for center ,left and right view

                break
                 default:
                        break
                    }
                }