我可以让iOS UINavigationController处于相同状态吗?

我可以让iOS UINavigationController处于相同状态吗?,ios,uiviewcontroller,Ios,Uiviewcontroller,我的应用程序中有一个UIViewController,其中包含问题、MCQ答案及其相关分数 我将此控制器推入另一个控制器,即 QuestionViewController *questionController = [delegate getQuestionScreen]; // If Iphone/iPod Touch if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone

我的应用程序中有一个UIViewController,其中包含问题、MCQ答案及其相关分数

我将此控制器推入另一个控制器,即

QuestionViewController *questionController = [delegate getQuestionScreen];


    // If Iphone/iPod Touch
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
        // If iPhone 5 or new iPod Touch
        if([UIScreen mainScreen].bounds.size.height == 568){
            questionController = [[QuestionViewController alloc] initWithNibName:@"QuestionViewController" bundle:nil];

        } else{
            // Regular iPhone
            questionController = [[QuestionViewController alloc] initWithNibName:@"QuestionViewController_iPhone4" bundle:nil];

        }
    }


    questionController.modalPresentationStyle =  UIModalTransitionStyleCrossDissolve;

    [self.navigationController pushViewController:questionController animated:NO];
当我在这个控制器上时,我打开侧菜单(如facebook)和新控制器的选择选项,比如HelpController

 DemoViewController *demoController = [[DemoViewController alloc] initWithNibName:@"HelpViewController_iPhone4" bundle:nil];


        UINavigationController *navigationController = self.menuContainerViewController.centerViewController;
        NSArray *controllers = [NSArray arrayWithObject:demoController];
        navigationController.viewControllers = controllers;
        [self.menuContainerViewController setMenuState:MFSideMenuStateClosed];
当我返回到QuestionViewController的上一个屏幕时,我必须创建该控制器的新对象,结果是,当它更新时,我丢失了所有的计算和旧数据

如何存储旧控制器以再次导航或在特定状态下重复使用

如果关于这个问题有什么不清楚的地方,请问我……

不要这样做:

    NSArray *controllers = [NSArray arrayWithObject:demoController];
    navigationController.viewControllers = controllers;
因为它要求导航控制器丢弃所有当前视图

相反,按下新控制器


如果由于某种原因无法直接推送它,请创建一个实例变量(
NSArray
),并在替换它之前使用它存储
navigationController.ViewController
,然后您可以稍后还原。

您的QuestionViewController是根视图吗?您正在执行的计算是在QuestionViewController上进行的?我不明白您的问题以及为什么要为iPhone 4和5创建同一视图控制器的两个对象。我真的不知道你能详细说明一下吗?我不确定这个解决方案,因为我没有正确地回答你的问题,但你可以使用singleton对象。问题视图控制器不是根视图控制器,我的答案是1。副代表,2。容器(侧菜单)3。DemoViewController,,,,,,在演示屏幕后,我正在推送视图,如问题,让我试试,如果有任何问题或查询,我会问你们。谢谢你的回复。两者都不同,我是否应该向你解释更多关于应用程序继承人的问题。不同?演示结束后,您想返回到之前的位置还是其他地方?我将QuestionViewController保存在数组中并检索最后一个对象。谢谢@Wain