解决方法如下:

self.presentingViewController.view.alpha = 0;
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];

 

只用两行代码就可以比较完美的解决问题。第一行代码让B的视图变为透明(由于父视图变为透明,任何B的子视图都会透明)。这样的效果将是C的视图从A的视图上滑出。

第二行代码中连续获取了两次presentingViewController,其实就是A,不过这使得A视图控制器中不用添加任何代码,从而解决了耦合的问题。

 

注:其实也可以多次,我试过三次的,亲测可行!


作者:稻草人11223