UINavigationController 返回上一级,返回根控制器,返回某一级

本文详细解析了在iOS应用中通过控制器导航实现页面间的跳转逻辑,包括设置界面、修改密码界面以及返回根控制器的过程。文章深入探讨了如何在不同控制器间进行跳转,并确保导航操作的流畅性和用户体验。

主页

----我的(模块)----根控制器

点击进入设置界面(这里简称 A 界面)


点击进入修改密码界面(B 界面)


点击修改密码进入确认修改密码界面(去 C 界面)


点击确定需改密码(返回 A 界面)


//返回指定某一个控制器

for (int i=0; i<self.navigationController.childViewControllers.count; i++) {

        //取出所有子控制器

        UIViewController *child=self.navigationController.childViewControllers[i];

        //如果是该控制器,就返回这个界面.....

        if([childisKindOfClass:[XXXXXXXXXXXXXclass]]){

            [self.navigationControllerpopToViewController:child animated:YES];

        }

        

    }



    //返回根控制器

    [self.navigationControllerpopToRootViewControllerAnimated:YES];

    //返回上一级控制器

    [self.navigationControllerdismissViewControllerAnimated:YEScompletion:nil];




    NSArray *arr = self.navigationController.viewControllers;

    

    int  count=(int)arr.count-1;

    for (int i=count; i>=0; i--) {

        

        UIViewController   *viewController=arr[i];

        //这里面有顺序要求

        if([viewController isKindOfClass:[PYLoginViewController class]]||[viewController isKindOfClass:[PYAccountCenterViewController class]] ||[viewController isKindOfClass:[PYSettingTabViewController class]])

        {

            //跳级指定返回上一级

            [self.navigationController popToViewController:viewController animated:YES];

            return;

        }

    }

    

    //否则直接返回根目录

    [self.navigationController popToRootViewControllerAnimated:YES];




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值