【问题标题】:How can I know if a ModalViewController is being shown?我如何知道是否正在显示 ModalViewController?
【发布时间】:2010-08-21 22:23:23
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: iphone uiviewcontroller modalviewcontroller


    【解决方案1】:

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

    【讨论】:

    • 谢谢,这行得通。我使用了条件: if([self.modalViewController isMemberOfClass:[UINavigationController class]]) ...
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-15
      相关资源
      最近更新 更多