我使用ECSlidingViewController来创建滑出菜单(如Facebook)。如何在iOS中保存/恢复视图状态?
我有这样的故事板:
正如你所看到的,我有一个导航控制器。我有一个主要问题,即使是由制作该控制器的用户创建的官方演示没有实现:它在更改视图并且然后返回时不保存视图控制器的状态。
因此,例如,橙色视图将始终是第一个视图,当我打开应用程序时,它会得到viewDidLoad
。然后我切换到我的绿色视图(第二个),然后单击按钮。它将该视图的背景颜色更改为红色。然后,如果我回到我的第一个视图,然后回到第二个视图,那么后者的背景颜色会再次变为绿色。我希望它保持红色。
这是我的代码来切换视图(在MenuViewController
):
(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// Get identifier from selected
NSString *identifier = [NSString stringWithFormat:@"%@", [self.menu objectAtIndex:indexPath.row]];
// Add the selected view to the top view
UIViewController *newTopVC = [self.storyboard instantiateViewControllerWithIdentifier:identifier];
// Present it
[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
CGRect frame = self.slidingViewController.topViewController.view.frame;
self.slidingViewController.topViewController = newTopVC;
self.slidingViewController.topViewController.view.frame = frame;
[self.slidingViewController resetTopView];
}];
}
正如你所看到的,它总是每次实例化一个新的VC。我希望它可以保存VC,创建一个新的,如果它没有创建,然后显示一个。 如果用户返回到已创建的视图,则应恢复保存的视图,而不是创建新的视图。
我已经把Init View Controller
放在一个导航控制器中,现在我该如何实现这个保存/恢复机制的视图?我希望它能与2,3,4等一起工作......尽可能多的观点。
谢谢。