代码之家  ›  专栏  ›  技术社区  ›  ed94133

如何知道是否显示ModalView控制器?

  •  5
  • ed94133  · 技术社区  · 14 年前

    当设备处于横向模式时,我覆盖主视图控制器中的方向更改以推送ModalView控制器A。当置于纵向模式时,ModalView控制器A将被解除。但是,也有其他情况(按钮触摸后)显示ModalView控制器B、C或D。当这些显示时,如果设备被横向转动并向后转动,则ModalView控制器B C或D被不适当地解除。

    我可以验证主视图控制器上的-oritionchanged是否正在发送消息,即使显示了ModalView控制器。当显示ModalView控制器B C或D时,是否有条件可以添加到我的-OrientationChanged方法中以绕过该代码?

    谢谢您!

    2 回复  |  直到 10 年前
        1
  •  6
  •   Elfred    14 年前

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

        2
  •  1
  •   idearibosome    12 年前

    您可以使用此代码查找最后一个ModalView控制器。

    UIViewController *leafController = self;
    while(true) {
        if (leafController.modalViewController) {
            leafController = leafController.modalViewController;
            continue;
        }
        break;
    }
    [leafController presentModalViewController:showController animated:YES];