【问题标题】:Can you not call dismissModalViewController in succession?不能连续调用dismissModalViewController吗?
【发布时间】:2012-01-26 16:20:51
【问题描述】:

我有一个模式视图控制器,用户可以在其中输入信息。当他们点击提交按钮时,该信息被发送到服务器并且模态视图控制器被解除。

但是,如果用户没有登录,当他们点击提交时,它会加载一个登录屏幕(作为另一个模态视图控制器)。登录后,登录视图控制器被解除,他们的信息被发送到服务器,视图控制器被解除。问题是,他们输入信息的视图控制器仍然在屏幕上。

我可以通过延迟关闭数据输入视图控制器来解决此问题。似乎如果我同时快速关闭两个视图控制器,第二个仍然存在。

还有其他人看过吗?

【问题讨论】:

  • 你能展示你是如何关闭两个modalViewControllers的代码吗?可能,第一个控制器在解除其子控制器之前被解除并释放。
  • 所以如果第一次登录失败,那么第一个模态登录视图会保留,而另一个第二个模态登录视图会放在顶部?

标签: ios uiviewcontroller modalviewcontroller


【解决方案1】:

我已经确定问题是因为第一个模式被解除(视图控制器中的登录)在我解除第二个模式(数据输入视图控制器)之前没有消失。当第二个dismiss调用发生时,登录视图控制器仍然被认为是顶视图控制器,所以第二个VC没有任何反应。

【讨论】:

    【解决方案2】:

    当您刚刚从前一个控制器呈现新的 modalView 时,就会发生这种情况。 您并没有解雇前一个控制器。

    您需要从启动登录控制器的位置关闭控制器。 您需要保持指向“信息”控制器的指针可访问,并且在登录时提交成功时,您需要像从 LoginController 或 appDelegate 一样关闭信息控制器(只要您可以保持指针可访问):

    [info dismissModalViewControllerAnimated:NO];
    

    【讨论】:

      猜你喜欢
      • 2012-08-10
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      • 2018-10-07
      • 1970-01-01
      • 2012-02-20
      • 2014-10-29
      • 1970-01-01
      相关资源
      最近更新 更多