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

如果调用太早,PresentModalView控制器将不工作

  •  3
  • gurghet  · 技术社区  · 15 年前

    如果我在不到一定的时间内消除模态VC并再次呈现它(或另一个),它就不会出现。 我错过什么了吗?

    2 回复  |  直到 15 年前
        1
  •  8
  •   Alex Gosselin    15 年前

    是的,你不能这样做。我假设你的所作所为是这样的:

     [self dismissModalViewControllerAnimated:YES];
     [self presentModalViewController:myNewController animated:YES];
    

    这不管用。我不知道确切原因,但它与我相信的动画有关。您的选项是取消第一个不带动画的视图,或者等待在父视图中显示新的视图(或者可能在前一个模式视图中显示视图,但不确定是否有效)。

        2
  •  0
  •   Daniel    15 年前

    您不能一个接一个地忽略两个模态视图控制器,除了其他海报建议的以外,您可以在忽略其他模态视图之前等待一小段时间,例如

    [self performSelector:@selector(method) withObject:nil afterDelay:.5];
    

    其中调用的方法只是解除其他模式视图。 代码片段在0.5秒后执行选择器,并且可以在出现如您描述的动画计时问题时使用,以分离调用时间,以便正确执行。