美文网首页iOS学习笔记
pop返回指定控制器或者移除某个控制器

pop返回指定控制器或者移除某个控制器

作者: MJBaby | 来源:发表于2017-04-26 15:05 被阅读164次

1、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:self];

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

2、Swift

//返回指定界面

let marr = NSMutableArray.init(array:(self.navigationController?.viewControllers)!)

1、

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)

}

}

2、

for i in 0..<marr.count {

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)

}

}

3、//将本控制器从导航栏控制器数组中移除,从而返回到跳转到本控制器的控制器

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返回指定控制器或者移除某个控制器

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