首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另一个modalviewcontroller中取消modalviewcontroller

从另一个modalviewcontroller中取消modalviewcontroller
EN

Stack Overflow用户
提问于 2011-05-09 18:17:29
回答 6查看 4.7K关注 0票数 3

我呈现的是来自另一个modalviewcontroller的modalviewcontroller。当我关闭第二个modalviewcontroller时,第一个和第二个modalviewcontroller都应该被关闭。我尝试访问第一个模态视图,如下所示

代码语言:javascript
复制
[self.view.superview dismissmodalviewcontroller];  

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

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 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:是的;

票数 10
EN

Stack Overflow用户

发布于 2011-05-09 18:23:11

试试[self.parentViewController dismissModalViewControllerAnimated:YES];

这将使两个模式视图控制器都失效

票数 2
EN

Stack Overflow用户

发布于 2011-05-09 18:25:26

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

代码语言:javascript
复制
[self.parentViewController dismissModalViewControllerAnimated:YES];

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5935462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档