dissmissViewController到跟控制器

本文详细介绍了如何在iOS应用中,通过在C控制器的dismiss方法内找到并dismiss到A控制器的全过程,利用presentedViewController和presentingViewController属性实现控制器之间的导航逻辑。

不知道你有没有遇到过这个问题,控制器A presentViewController B  然后B presentViewController C,

现在呢我想在C 控制器里通过dissmissViewController到A

说到这里,再延伸下控制器的两个可能很多人都没注意的两个只读属性:presentedViewController和presentingViewController,他们分别是被present的控制器和正在presenting的控制器。 控制器A和B,[A presentViewController B animated:YES completion:nil]; 那么A相对于B就是presentingViewController,B相对于A是presentedViewController,即这个时候  

    B.presentingViewController = A;

    A.presentedViewController = B;

了解之后就解决一下怎么从C控制器dismiss到A控制器呢!!哦吼吼见证奇迹的时候来了:

在C控制器dismiss方法里面:

UIViewController *rootVC = self.presentingViewController;

    while (rootVC.presentingViewController) {

        rootVC = rootVC.presentingViewController;

    }

    [rootVC dismissViewControllerAnimated:YEScompletion:nil];

这样就可以了,和刚才的理论是吻合的害羞
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值