关于侧滑返回指定页面

产品提出了一个需求,返回和侧滑返回都返回首页,返回就将返回按钮的触发事件定义为返回首页即可,侧滑返回,只要将目标控制器和当前控制器中间的控制器删除即可实现,我们在viewDidLoad中定义这个方法即可

       //在需要侧滑到指定控制器的控制器的 view 加载完毕后偷偷将当前控制器与目标控制器之间的所有控制器出栈
     //# 1. 获取当行控制器所有子控制器
     NSMutableArray <UIViewController *>* tmp = self.navigationController.viewControllers.mutableCopy;
    // # 2. 获取目标控制器索引
     UIViewController * targetVC = nil;
       for (NSInteger i = 0 ; i < tmp.count; i++) {
           
           UIViewController * vc = tmp[i];
           if ([vc isKindOfClass:NSClassFromString(@"HomePageViewController")])
           {
               targetVC = vc;
               // 也可在此直接获取 i 的数值
               break;
           }
       }
     NSInteger index = [tmp indexOfObject:targetVC];
    // # 3. 移除目标控制器与当前控制器之间的所有控制器
     NSRange  range = NSMakeRange(index + 1, tmp.count - 1 - (index + 1));
       
     [tmp removeObjectsInRange:range];
    // # 4. 重新赋值给导航控制器
     self.navigationController.viewControllers = [tmp copy];
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容