美文网首页
导航-删除或返回特定VC-(发布详情)

导航-删除或返回特定VC-(发布详情)

作者: 守护地中海的花 | 来源:发表于2019-05-21 17:29 被阅读0次

导航是堆栈模式 导航控制器类似数组 最新的push的控制器在数组的最后一个元素 pop的控制器 移除数组最后一个元素
topViewController:就是当前导航控制器管理当前控制器最上层

  • 发布详情界面 一般要删除之前的界面
- (void)deleteOtherControllers
{
    //HomeVC  LocalTribeMainVC LocalTribeCircleVC LocalTribePushVC LocalTribeDetailVC 直接发布
    //HomeVC  LocalTribeMainVC  LocalTribeCircleDetailVC LocalTribePushVC LocalTribeDetailVC 在圈子详情里面选择发布
    
    [self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        NSLog(@"%@",obj);
    }];
    NSMutableArray<BaseVC *> *viewControllers = [NSMutableArray array];
    [viewControllers addObjectsFromArray:self.navigationController.viewControllers];
    
    //收藏要被删除vc
    NSMutableArray<BaseVC *> *deleteArray = [NSMutableArray array];
    for (NSInteger index = 0; index < viewControllers.count; index ++) {
        if (index == viewControllers.count - 1 || index == 0) {
            continue;
        }
        if ([viewControllers[index] isMemberOfClass:NSClassFromString(@"LocalTribeCircleVC")]) {
            [deleteArray addObject:viewControllers[index]];
        }
    }
    //删除
    for (NSInteger index = 0; index < deleteArray.count; index ++) {
        [viewControllers removeObject:deleteArray[index]];
    }
    //对接之前的导航
    self.navigationController.viewControllers = viewControllers;
}

返回特定的VC

- (void)rushTopSucceed
{
    //ActivityPageVC ActivityPageDetailManagerVC ActivityVoteDetailVC ShopRushTopVC OrderPreOrderVC
    //ActivityPageVC ActivityPageDetailManagerVC ActivityVoteDetailVC ShopRushTopVC CartPageVC OrderPreOrderVC
    NSLog(@"%@",self.navigationController.viewControllers);
    //收藏要被删除vc
    BaseVC *voteDetailVC;
    for (NSInteger index = (self.navigationController.viewControllers.count - 1); index >= 0; index --) {
        NSLog(@"%@",self.navigationController.viewControllers[index]);
        if (index == self.navigationController.viewControllers.count - 1 || index == 0) {
            continue;
        }
        if ([self.navigationController.viewControllers[index] isMemberOfClass:NSClassFromString(@"ActivityVoteDetailVC")]) {
            voteDetailVC = self.navigationController.viewControllers[index];
            //保证回到就近的投票
            break;
        }
    }
    if (voteDetailVC) {
        [self.navigationController popToViewController:voteDetailVC animated:YES];
    }
}

相关文章

  • 导航-删除或返回特定VC-(发布详情)

    导航是堆栈模式 导航控制器类似数组 最新的push的控制器在数组的最后一个元素 pop的控制器 移除数组最后一个元...

  • iOS返回根视图的方法

    1.导航栏返回根视图 2.导航栏返回特定视图 3.dissmiss 返回根视图

  • TreeMap学习笔记

    一、TreeMap 总体概述: TreeMap实现了NavigableMap(可以返回特定条件最近匹配的导航方法)...

  • ios返回指定导航控制器

    用导航控制器返回到上一页和返回到根控制器有其自带方法。 返回到特定的控制器的核心代码: popToViewCont...

  • tableView左滑删除返回崩溃现象

    左滑删除cell掉时,点击导航栏的返回按钮出现崩溃现象解决办法 - (void)viewWillDisappear...

  • 走在redis的路上

    键 key1:DEL 删除 删除给定的一个或多个 key 。返回被删除 key 的数量。 删除单个 key red...

  • 存储过程与函数的区别

    说说存储过程与函数的区别 (1)存储过程用户在数据库中完成特定操作或者任务(如插入,删除等),函数用于返回特定的数...

  • 2018-09-21

    产投集团APP-智慧党建系统 1、快捷导航切换优化2、更换首页图标3、更新资讯详情删除评论后不显示评论列表bug

  • 4.3 UiPathExcel之修改操作

    Excel 修改操作删除行控件介绍Insert/Delete Rows: 在特定位置添加或删除指定数量的行 常用属...

  • 删除特定行

    python删除特定行可以利用for循环 还可以使用内置函数enummerate():

网友评论

      本文标题:导航-删除或返回特定VC-(发布详情)

      本文链接:https://www.haomeiwen.com/subject/uxzjzqtx.html