iOS学习笔记

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

2017-04-26  本文已影响164人  MJBaby

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]

上一篇 下一篇

猜你喜欢

热点阅读