我使用SWRevealViewController设置导航滑出式导航面板,类似于Facebook或Gmail应用程序使用的导航面板,并有几个视图控制器,包括一个“主”视图控制器,以编程方式添加创建的视图(或由用户“绘制”。
我的问题是,当用户导航到另一个视图控制器并再次返回“主”视图控制器时,所有以编程方式添加的视图都会消失,并且用户将保留默认的空白画布视图。如何保留放置在主视图控制器中的所有视图/内容,以便在用户导航回此视图控制器时它将存在?
作为参考,我已将代码包含在SideMenuController
:
- (void)prepareForSegue: (UIStoryboardSegue *)segue sender:(id) sender
{
if ([segue isKindOfClass:[SWRevealViewControllerSegue class]]) {
SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue *)segue;
swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController;
[navController setViewControllers: @[dvc] animated: NO ];
[self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES];
};
}
}
另外:我尝试了各种其他预制的滑出式导航面板,例如ViewDeck和MFSideMenu,我遇到了所有这些问题。
更新
正如你们中的一些人建议的那样,我应该从我的App Delegate向我的主视图控制器创建一个强指针。我怎么能这样做,所以当我从菜单控制器设置segue时,当它看到它进入我的主控制器它会自动拉出之前的那些,而不是重新实例化所有内容并调用viewDidLoad等?
谢谢!