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