我呈现的是来自另一个modalviewcontroller的modalviewcontroller。当我关闭第二个modalviewcontroller时,第一个和第二个modalviewcontroller都应该被关闭。我尝试访问第一个模态视图,如下所示
[self.view.superview dismissmodalviewcontroller]; 但它显示了错误。从第二个modalViewController中获取对第一个ref的引用并从中调用dismiss方法的正确方式是什么?
发布于 2011-05-09 20:27:53
是这样的。
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:是的;
因此,您需要从C获取B作为C.parentViewController (别忘了在这里进行类型转换)。然后你会说B.parentViewController dismissModalViewControllerAnimated:是的;
发布于 2011-05-09 18:23:11
试试[self.parentViewController dismissModalViewControllerAnimated:YES];
这将使两个模式视图控制器都失效
发布于 2011-05-09 18:25:26
dismissModalViewControllerAnimated:方法是UIViewController类的一部分,而不是UIView的。所以你需要做的是
[self.parentViewController dismissModalViewControllerAnimated:YES];而不是在self.view.superview上调用它。
https://stackoverflow.com/questions/5935462
复制相似问题