2013-07-17 2 views
0

У меня есть UIViewController в моем приложении, которое содержит вопросы, ответы mcqs и их соответствующие оценки.Могу ли я получить iOS UINavigationController в том же состоянии?

Я толкаю этот контроллер в другом контроллере, т.е.

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 ...

Когда я возвращаюсь к предыдущему экрану QuestionViewController, мне нужно создать новый объект этого контроллера, в результате чего я потерял все свои вычисления и старые данные, поскольку он лаодит новый.

Как хранить старый контроллер для повторного использования этого или повторного использования в этом конкретном состоянии.

Если что-то не ясно, о вопрос, спросите меня .......

+0

Является ли ваш QuestionViewController корневым представлением и вычисления, которые вы выполняете, находятся на QuestionViewController? –

+0

Я не получаю ваш вопрос, а также почему вы создаете два объекта одного контроллера вида для iPhone 4 и 5. Я действительно не знаю, можете ли вы это уточнить – iEinstein

+0

Я не уверен в этом решении, поскольку я не получил ваш вопрос правильно, но вы можете пойти с объектом singleton. –

ответ

1

Только не делайте этого:

NSArray *controllers = [NSArray arrayWithObject:demoController]; 
    navigationController.viewControllers = controllers; 

Поскольку он просит навигационный контроллер, чтобы выбросить все текущие взгляды.

Вместо этого нажмите новый контроллер.

Если по какой-либо причине вы не можете просто нажать его, создайте переменную экземпляра (NSArray) и используйте ее для хранения navigationController.viewControllers, прежде чем вы ее замените, затем вы сможете восстановить ее позже.

+0

Позвольте мне попробовать, если возникнут какие-либо вопросы или вопросы, я бы спросил вас. Спасибо за ответ. – Duaan

+0

оба разные, я должен объяснить вам больше о наследнике приложения. – Duaan

+0

Разное? После демо вы хотите вернуться к тому, где вы были раньше или где-то еще? – Wain

Смежные вопросы