从另一个modalviewcontroller中解除modalviewcontroller

时间:2011-05-09 10:17:29

标签: iphone modalviewcontroller

我将从另一个modalviewcontroller呈现一个modalviewcontroller。当我解雇第二个modalviewcontroller时,第一个和第二个modalviewcontroller都应该被解雇。我试图访问第一个模态视图,如

[self.view.superview dismissmodalviewcontroller];  

但是显示错误。从第二个获取第一个modalViewController并从中调用dismiss方法的正确方法是什么?

4 个答案:

答案 0 :(得分:10)

就是这样。

A礼物B.这里,A是B的父(这里,A.modalViewController将是B,而B.parentViewController将是A)

和B呈现C.这里,B是C的父(这里,B.modalViewController将是C,而C.parentViewController将是B)

根据苹果指南,母公司控制人员有责任解雇其子女管理员。

因此,如果要关闭控制器C,请在C.parentViewController上调用dismissModalViewController。由于C的父亲是B,因此B正在解雇它所呈现的模态(子)控制器。

但你想要解雇B. B的父母有责任解雇B.所以你需要说[B.parentViewController dismissModalViewControllerAnimated:YES];

因此,您需要从C获取B作为C.parentViewController(不要忘记在这里进行类型转换)。然后你说[B.parentViewController dismissModalViewControllerAnimated:YES];

答案 1 :(得分:2)

尝试[self.parentViewController dismissModalViewControllerAnimated:YES];

这将关闭两个模态视图控制器

答案 2 :(得分:2)

dismissModalViewControllerAnimated:方法是UIViewController类的一部分,而不是UIView类的一部分。所以你需要做

[self.parentViewController dismissModalViewControllerAnimated:YES];

而不是在self.view.superview上调用它。

答案 3 :(得分:2)

为了进一步澄清,您可能需要的是这样的事情:

[self.parentViewController.parentViewController dismissModalViewControllerAnimated:YES];