Проблема сохранения и восстановления состояния в 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
}
}