//OC
NSArray *array = [NSMutableArray new];
array = self.navigationController.viewControllers; //1、返回指定index的控制器
UIViewController *viewC = [array objectAtIndex:0];
[self.navigationController popToViewController:viewC animated:YES]; //2、
UIViewController *viewc = [UIViewController new];
for (viewc in array) {
if ([viewc isKindOfClass:[指定控制器 class]]) {
[self.navigationController popToViewController:viewcanimated:YES];
}
}

//3、

 [vcArr removeObject:strongSelf];

[self.navigationController setViewControllers:vcArr animated:NO];

 

2、Swift

//返回指定界面
let marr = NSMutableArray.init(array:(self.navigationController?.viewControllers)!)
for i in 0..<marr.count {
let vc = marr[i] as! UIViewController
let vcName = type(of: vc)
let PurposeVCName = type(of: 指定控制器名称())
if "\(PurposeVCName)" == "\(vcName)" {
self.navigationController?.popToViewController(vc, animated: true)
}
}
let marr = NSMutableArray.init(array:(self.navigationController?.viewControllers)!)
for i in 0..<marr.count {
let vc = marr[i] as! UIViewController
let vcName = type(of: vc)
let PurposeName = type(of: 指定控制器的后一个控制器名称())
if "\(PurposeName)" == "\(vcName)" {
let popVC = self.navigationController?.viewControllers[i-1]
self.navigationController?.popToViewController(popVC!, animated: true)
}
}
//将本控制器从导航栏控制器数组中移除,从而返回到跳转到本控制器的控制器
let marr = NSMutableArray.init(array(self.navigationController?.viewControllers)!)
let removeArr = NSMutableArray()
for i in 0..<marr.count {
let vc = marr[i] as! UIViewController
let vcName = type(of: vc)
let selfName = type(of: self)
if "\(selfName)" == "\(vcName)" {
removeArr.add(vc)
}
} if removeArr.count > 0 {
for i in 0..<removeArr.count {
let vc = removeArr[i] as! UIViewController
marr.remove(vc)
}
}
let array : NSArray = marr
self.navigationController?.viewControllers = array as! [UIViewController]

pop回指定控制器的更多相关文章

  1. navigationController Pop回指定页面

    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIn ...

  2. swift 4.2 - 根据字符串 push指定控制器

    俩个方法 1. 创建类写成 类方法 import UIKit /* * 注释:获得VC * 1.字符串 和使用的控制器,直接跳转 * 2.用过字符串获得对应VC */ class JYGetPushV ...

  3. RYU改动监听port Mininet在custom自建拓扑和连接到指定控制器命令解释

    1.RYU控制器改动监听port 在ryu/ryu/ofproto以下的ofproto_common.py watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc ...

  4. 多次页面跳转后pop回主界面的问题

    最近写代码的时候出了点BUG, 查阅资料后终于解决了. 问题原因大概是: 项目中所有的viewController都是继承自一个封装好的viewController. navigationbar, n ...

  5. [PHP] 实现路由映射到指定控制器

    自定义路由的功能,指定到pathinfo的url上,再次升级之前的脚本 SimpleLoader.php <?php class SimpleLoader{ public static func ...

  6. ios开发之--pop到指定页面

    1 推出到根视图控制器 [self.navigationController popToRootViewControllerAnimated:YES]; 2 推出到指定的视图控制器 for (UIVi ...

  7. iOS从不同页面跳转回到指定控制器

    HomeViewController *homeVC = [[HomeViewController alloc] init]; UIViewController *target = nil; for ...

  8. ionic3 pop到指定页面

    this.navCtrl.getViews().forEach(element => { if(element.name == 'JiecheHomePage'){ this.navCtrl.p ...

  9. ios UINavigationController 导航栏

    添加全屏侧滑返回 .获取到系统的pop返回手势 .获取pop在哪个view上 .获取target,action .自定义UIPanGestureRecognizer //1.获取手势 guard le ...

随机推荐

  1. js判断是否是同一域名

    可以判断自己的网页是否是嵌入别的网页中 /** * 是否相同域名 * @returns {boolean} * @constructor */ function SameDomain() { try ...

  2. thread pool

    thread pool import concurrent.futures import urllib.request URLS = ['http://www.foxnews.com/', 'http ...

  3. MarkDown学习内容总结

    MarkDown学习内容 标题 使用方法:通过 # 的个数实现多级标题. 举例如下: 一级标题格式为:# + 空格 + 标题名: 二级标题格式为:## + 空格 + 标题名: 三级标题格式为:### ...

  4. k8s endpoints controller分析

    k8s endpoints controller分析 endpoints controller简介 endpoints controller是kube-controller-manager组件中众多控 ...

  5. 获取鼠标在 canvas 中的位置

    一般情况 一般情况下,如果需要在 canvas 中获取鼠标指针坐标,可以通过监听鼠标的 mousemove(如果只需单击时的坐标,可以用 click)事件. 当事件被触发时,我们可以获取鼠标相对于 v ...

  6. ES6基础知识(Map用法)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. python实现开闭操作

    目录: 开闭操作的作用 (一)开操作 (二)闭操作 (三)开操作完成其他任务 (1)提取水平垂直线 (2)消除干扰线 (3)提取满足要求的形状 开闭操作的作用: (一)开操作(特点作用:消除噪点--- ...

  8. k8s-控制器deployment弹性扩容,更新镜像,回滚,DaemonSet,StatufluSet

    目录 1.控制器deployment,DaemonSet,StatufluSet 2.控制器-deployment 弹性扩容 方式1-修改配置清单 方式2-打标签 方式3-scale 更新镜像 方式1 ...

  9. /dev/random 和 /dev/urandom 的原理

    /dev/null 是一个特殊的设备文件,它丢弃一切写入其中的数据 可以将它 视为一个黑洞, 它等效于只写文件, 写入其中的所有内容都会消失, 尝试从中读取或输出不会有任何结果,同样,/dev/nul ...

  10. 第05章 MySQL排序与分页

    第05章 MySQL排序与分页 1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELEC ...