2016-06-24 1 views
10

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

Я использовал 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

'не работает, как expected' - так что тогда происходит? какой код вы добавили? какую отладку вы сделали? что вы наблюдали? – Wain

+0

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

+0

Что вы имеете в виду при восстановлении состояния? Это о регистрации в пользователе? – alicanbatur

ответ

0

Вы можете легко сохранить состояние путем сохранения состояний в 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's 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 
        } 
       } 
Смежные вопросы