如果是一层层push进来的,可以使用下面方法进行返回:
// 1
// push将控制器压到栈中,栈是先进后出;pop是出栈:即将控制器从栈中取出。
NSArray*arrController =self.navigationController.viewControllers;
NSInteger
VcCount = arrController.count;
//最后一个vc是自己,(-2)是倒数第二个是上一个控制器。
UIViewController
*lastVC = arrController[VcCount - 3];
// 返回到倒数第三个控制器
if
([lastVC
isKindOfClass:[XZViewController
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];
}
}
本文介绍了在iOS开发中,如何使用UINavigationController的几种常见返回方法。包括直接返回到指定索引位置的控制器、返回到栈中倒数第三个控制器以及通过遍历子控制器来找到并返回到指定类型的控制器。
1693

被折叠的 条评论
为什么被折叠?



