【问题标题】:present new modal view controller then dismiss old modal view controller呈现新的模态视图控制器然后关闭旧的模态视图控制器
【发布时间】:2012-03-01 20:13:17
【问题描述】:

我想关闭我当前的视图控制器,然后加载一个新的视图控制器。这似乎应该工作:

FieldReportViewController *fieldReport = [self.storyboard instantiateViewControllerWithIdentifier:@"fieldReportView"];
[self presentModalViewController:fieldReport animated:YES];

[self dismissModalViewControllerAnimated:NO];

我提出新的模态,然后忽略旧的。但旧的并没有真正被解雇。

知道我该如何完成这项工作或为什么这不起作用?

【问题讨论】:

  • 您必须在模态视图本身的类中关闭模态视图。
  • @class 声明要关闭的模态的类

标签: objective-c ios


【解决方案1】:

您并没有取消旧的模态视图控制器....您正在取消刚刚呈现的新模式。尝试先关闭模态视图控制器。

【讨论】:

    【解决方案2】:

    在呈现新视图之前先关闭旧视图或使用实际名称而不是“self”

    添加此代码:

     #import "class of the to dismiss view.h"
     @class class of the to dismiss view
    

    【讨论】:

      【解决方案3】:

      当您呈现模态视图控制器时,根据您使用的 iOS 版本,您将第一个模态的属性 modalViewControllerpresentingViewController 设置为第二个模态,并将第二个视图控制器添加到查看层次结构。如果您成功移除了第一个模态,则第二个模态将不再附加到任何视图层次结构中。

      您可能要考虑的是使用单个视图控制器并仅替换该模态视图的视图。我想这会给你你想要的。

      或者,您可能应该关闭第一个模态,并从前一个视图控制器呈现第二个模态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多