0

我需要连续显示三个 UIViewController。UIViewController1 是我的主视图控制器,有一个按钮。单击该按钮以模态方式显示 UIViewController2。30 秒后,UIViewController3 自动模态显示。我是否必须先关闭 UIViewcontroller2 然后显示 UIViewController3?我在 UIViewcontroller3 上有一个完成按钮,单击它应该带我回到 UIViewController1(主视图控制器)。我是否首先从链中解除 UIViewController2,然后在 UIViewController1 上执行 alloc/init 以显示它?我不想在这个过程中出现任何内存泄漏。

请帮忙。

4

1 回答 1

0

有两种主要方法可以做到这一点,其中一种,你已经提到过。在 XCode 中测试了这个场景之后。

第一个涉及从最终视图控制器(第三个)中解散所有模态视图控制器。通过这样做,您不能使用动画来关闭视图控制器。如果您尝试为它们设置动画,第二个将不会被解雇。(当然,您可以用动画关闭第二个,但它会显示从第二个到第一个的动画,而不是从第三个到第一个的动画

为此,您需要将您的第二个视图控制器作为属性传递给您的第三个视图控制器,以便您可以调用该行:

[[self parentVC] dismissModalViewControllerAnimated:NO];

注意 parentVC 是一个属性,应该设置为指向第二个视图控制器

然后在解雇时:

[self dismissModalViewControllerAnimated:NO];
[[self parentVC] dismissModalViewControllerAnimated:NO];

这将带您回到第一个视图控制器。

第二个,这并不是真正的好坏,但可能更容易编码,是在进入第三个之前关闭第二个视图控制器;同样,您可能不想在从第二个到第三个的过渡之间为视图控制器设置动画,但是您可以第三个到第一个动画。

于 2013-02-12T20:28:36.953 回答