控制器跨UITabbarController跳转的方法

今天看产品需求,有一个很常见的需求,就是控制器乱七八糟跳转,根本不管你上层界面是怎么推出来的,所以整理一下,额.蛋疼的产品

假想一个需求,我在个人中心界面有一个申请退款功能,申请退款成功之后界面有一个回到首页的按钮,点击退出界面必须回到首页.
这种完全不遵循代码从哪入从哪出的逻辑习惯的跳转,实际开发中还是很常见的,抽空整理了一下,其实很简单

// 假设你想在三级页面点击控制器View跳转
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
// 因为你这个界面是一串推出来的,所以打印一下这个navigationController对应的所有控制器们,就能拿到这一串一共有多少控制器
// @property(nonatomic,copy) NSArray<__kindof UIViewController *> *viewControllers; // The current view controller stack.
// 上面不难看出,这个viewControllers是不可变数组,因为我们是要改变这个数组中控制器顺序的,所以先转成可变数组
    NSMutableArray *tempMarr =[NSMutableArray arrayWithArray:self.navigationController.viewControllers];
    NSLog(@"%zd",tempMarr.count);
    
// 去除你不想要跳转的控制器,注意顺序是0开始的
    [tempMarr removeObjectAtIndex: 1];
// 这个方法也可以
//    [tempMarr removeObject:self.navigationController.viewControllers[1]];
// 将已经剔除掉不想要的中间层的控制器数组设置给你的当前navigationController
    [self.navigationController setViewControllers:tempMarr animated:YES];
这个时候实现pop的话就可以达到一串控制器内跨层级跳转了
// [self.navigationController popViewControllerAnimated:YES];

#pragma -mark  跨UITabbarController
// 如果你想跨UITabbarController跳转到别的item里面的话,下面代码就可以满足你
// 通过keyWindow拿到跟控制器,也就是UITabBarController
    UITabBarController *tabViewController = (UITabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
// 设置显示的状态
    tabViewController.selectedIndex = 1;
// 推出即可
    [self.navigationController popViewControllerAnimated:YES];
// 好了,完美  
}

好了,把我的注释去掉,其实没几行代码
我见过丑逼代码,要跳转就去创建新的,导致看层级,压了一百层都不止,😭
再看咱的层级

干干净净
这只是个简单的例子,回到跟控制器直接poptorootViewController就行了,不要纠结这个,只是说这种写法~~~

好了,就这么多,欢迎大家观看

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,250评论 4 61
  • 潇潇夜雨好忧愁, 静坐诗情画意勾。 万物生灵浓郁重。 秋寒奏响乐中踌。
    六月天气阅读 560评论 32 50
  • 今天早上六点多,收到了家长的微信短信息。 内容大概是孩子周末作业没做完,每周的作业都要磨磨蹭蹭到周日晚上才动笔,每...
    彩凤知音阅读 561评论 4 4
  • 今日诗 苏堤清明即事 【宋】吴惟信 梨花风起正清明,游子寻春半出城。 日暮笙歌收拾去,万株杨柳属流莺。 清明,是节...
    秦东魁阅读 359评论 0 0