解决方法如下:
self.presentingViewController.view.alpha = 0;
[self.presentingViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
只用两行代码就可以比较完美的解决问题。第一行代码让B的视图变为透明(由于父视图变为透明,任何B的子视图都会透明)。这样的效果将是C的视图从A的视图上滑出。
第二行代码中连续获取了两次presentingViewController,其实就是A,不过这使得A视图控制器中不用添加任何代码,从而解决了耦合的问题。