UIViewController的dismiss跳转多个页面

本文介绍了一种在iOS应用中,从多个层级的视图控制器返回到根控制器的方法。通过逐步展示从C控制器回到根控制器的过程,演示了如何使用presentingViewController属性实现这一功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有多个控制器,依次通过  presentViewControlleranimated:completion: 方法进行页面跳转,那么如何从最后一个视图控制器跳转会根控制器呢?

假设有四个视图控制器,每个控制器中都有一个UIButton,UIButton的响应方法,依次为

根控制器:

- (void) buttonClicked:(id) sender {
    A_Controller * controller =[[A_Controller alloc] init];
    [self presentViewController: controller animated:YES completion:nil];
}

A控制器:

- (void) buttonClicked:(id) sender {
    B_Controller * controller =[[B_Controller alloc] init];
    [self presentViewController: controller animated:YES completion:nil];
}

B控制器

- (void) buttonClicked:(id)sender {
    C_Controller * controller = [[C_Controller alloc] init];
    [self presentViewController:controller animated:YES completion:nil];
}

C控制器

- (void) buttonClicked:(id) sender {
    UIViewController * controller = self.presentingViewController;
    [self dismissViewControllerAnimated:YES completion:^{
        UIViewController * c = controller.presentingViewController;
        [controller dismissViewControllerAnimated:YES completion:^{
            [c dismissViewControllerAnimated:YES completion:nil];
        }];
    }];
}

这样,点击C控制器button的响应方法的时候,就会跳会到根控制器

转载于:https://www.cnblogs.com/benbenzhu/archive/2013/05/10/3071674.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值