5

当设备处于横向模式时,我在主 ViewController 中覆盖 -orientationChanged 以推送 ModalViewController A。当放回纵向模式时, ModalViewController A 被解除。但是,在其他情况下(在按钮触摸之后)会显示 ModalViewControllers B、C 或 D。当这些显示时,如果设备变成横向并返回,ModalViewController BC 或 D 被不恰当地关闭。

即使显示 ModalViewController,我也可以验证主 ViewController 上的 -orientationChanged 是否正在收到消息。当显示 ModalViewController BC 或 D 时,是否可以向我的 -orientationChanged 方法添加一个条件以绕过该代码?

谢谢!

4

2 回答 2

6

您可以检查主视图控制器中的 modalViewController 属性是否是您的视图控制器之一。

于 2010-08-21T22:27:17.727 回答
1

您可以使用此代码查找最后一个 ModalViewController 是什么。

UIViewController *leafController = self;
while(true) {
    if (leafController.modalViewController) {
        leafController = leafController.modalViewController;
        continue;
    }
    break;
}
[leafController presentModalViewController:showController animated:YES];
于 2011-12-25T15:50:22.713 回答