切换底层视图控制器iOS 8

时间:2014-09-19 07:57:12

标签: ios ios8 modalviewcontroller

这是目标:

我有一个导航控制器(NC1),它以模态方式呈现一些视图控制器(VC)。当我在该视图控制器中执行某些操作时,我需要(不可见地为用户)关闭VC,关闭NC1,然后呈现另一个导航控制器(NC2)并呈现相同的视图控制器VC。

在iOS 7.0,7.1中,这可以通过这个(略微调整的)代码运行良好:

  [controller dismissViewControllerAnimated:NO completion:nil];   //dismiss VC
  [self.presentedViewController dismissViewControllerAnimated:NO completion:nil]; //dismiss NC1

  SomeViewController * someViewController = [[SomeViewController alloc] init];  // root vc for NC2    
  NavigationController * navigationController = [[NavigationController alloc] initWithRootViewController:someViewController];     //NC2

  SomeViewController2 * someViewController2 = [[SomeViewController2 alloc] init];  
  [navigationController presentSomehow:someViewController2 animated:NO completion:nil]; //another pushed to NC2

  [someViewController2 presentViewController:controller animated:NO completion:nil]; //present VC again

但是在iOS 8(Xcode 6.0)中,似乎即使在解雇之后,VC仍然处于活动状态,并且应用程序在最后一行崩溃:

  

应用程序试图以模态方式呈现一个活动控制器......

当然,如果我将代码移动到完成块,则用户可以看到更改(并且很难看)。

有没有办法检查或强制VC退出活动状态,还是用其他方式来模拟iOS 7的行为?

感谢您的回答!

0 个答案:

没有答案