pop回指定控制器
2024-10-19 18:33:33
//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]
最新文章
- 【荐】PHP采集工具curl快速入门教程
- 浏览器-07 chromium 渲染1
- Codeforces Round #383 (Div. 2) A,B,C,D 循环节,标记,暴力,并查集+分组背包
- atitit.二进制数据无损转字符串网络传输
- sprintf
- 简单学习:repo入门
- MySQL(26):事务的隔离级别出现问题之 幻读
- Android的Manifest配置文件介绍
- NDN路由--OSPFN安装与配置
- Co-prime Array&;&;Seating On Bus(两道水题)
- Dreamer 框架 比Struts2 更加灵活
- 使用echarts,制作色温图
- Windows下Java环境变量配置
- Android绘制文字时垂直居中
- python学习之——习题二
- 五、UI开发之核心基础——约束(深入)
- kubectl常用命令
- 三角形垂点坐标js算法(三点定圆求圆心)
- JavaEE笔记(十三)
- linux centos 中Tomcat的安装和自启动配置