如何让视图控制器保留其所有视图/内容,即使它当前未显示?

时间:2013-11-18 03:26:17

标签: ios iphone uiviewcontroller uinavigationcontroller

我使用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];
        };
    }

}

另外:我尝试了各种其他预制的滑出式导航面板,例如ViewDeckMFSideMenu,我遇到了所有这些问题。

更新

正如你们中的一些人建议的那样,我应该从我的App Delegate向我的主视图控制器创建一个强指针。我怎么能这样做,所以当我从菜单控制器设置segue时,当它看到它进入我的主控制器它会自动拉出之前的那些,而不是重新实例化所有内容并调用viewDidLoad等?

谢谢!

0 个答案:

没有答案