我正在尝试从视图控制器B中呈现模式视图控制器C。B的视图未覆盖全屏,并且是另一个视图控制器A的子视图。当我尝试呈现全屏模式时,我看到的是模式覆盖了整个屏幕,但是当我点击屏幕上的某些位置时,控件将“通过”到A的视图。
我可以通过某种委托从A呈现模式,从而绕过这个问题,但是我不知道为什么会这样!毕竟,如果您有一个标签栏控制器来管理您的视图之一,并且尝试呈现模式视图,则它可以覆盖整个屏幕。幕后发生了什么魔术吗?
最佳答案
我认为没有关于如何实现模态的任何正式文档,但是任何视图都可以获取UIWindow的UIApplication并在rootViewController属性上调用-presentModal...。这将使您的模式全屏显示效果。我敢肯定,还有其他方法可以达到同样的效果。
[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentModalViewController:myModalVC animated:YES];
在这种情况下,您需要使用addSubview:和BringSubviewToFront:为所有视图控制器实现自己的“模态”方法。我已经在我的一个较大的项目中做到了这一点,我希望从模态视图中获得一些不同的行为。