如果是一层层push进来的,可以使用下面方法进行返回:
// 1
// push将控制器压到栈中,栈是先进后出;pop是出栈:即将控制器从栈中取出。
NSArray*arrController =self.navigationController.viewControllers;
NSIntegerVcCount = arrController.count;
//最后一个vc是自己,(-2)是倒数第二个是上一个控制器。
UIViewController*lastVC = arrController[VcCount - 3];
// 返回到倒数第三个控制器
if([lastVCisKindOfClass:[XZViewControllerclass]]) {
[self.navigationControllerpopToViewController:lastVCanimated:YES];
}
// 2
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
// 3
返回到指定的控制器:遍历一遍子控制器,判断一下哪个是要返回的控制器,进行返回
for(UIViewController*controllerinself.navigationController.viewControllers) {
if([controllerisKindOfClass:[XZViewControllerclass]]) {
[self.navigationControllerpopToViewController:controlleranimated:YES];
}
}
网友评论