今天写一个简单的小demo,可能对很多大神来说,这都是小儿科,但是如果刚开始学习的话,还是会稍微纠结一下,就当是记录一下吧.
很多时候,我们会从第一个界面一直push到第二个,第三个,第四个......,但是回退的时候如果一个一个的回退回来就会有些尴尬了,这个时候我们可以让界面回退到指定的界面,这样看起来就会轻便的多.
第一个方法,大家都知道,就是
[self.navigationController popToRootViewControllerAnimated:YES];
这个就是从当前界面返回到跟控制器的方法,但是当你想从当前界面返回到中间的任意一个界面时,这个方法就不适合.
可以用下面的方法
//回退到指定界面
UINavigationController *naviVc = self.navigationController;//self.navigationController表示本界面
NSMutableArray *viewControllers = [[NSMutableArray alloc] init];//初始化一个vc的数组,用于存放跳转本界面以来的所有vc
for (UIViewController *vc in [naviVc viewControllers]) {//遍历一路跳转到本界面以来的所有界面
[viewControllers addObject:vc];//将遍历出来的界面存放入数组
//判断要回退的指定界面是否与遍历的界面相同,ZYYSeconedViewController也可以替换为ZYYThirdViewController
if ([vc isKindOfClass:[ZYYSeconedViewController class]]) {
[self.navigationController popToViewController:vc animated:YES];//执行回退动作
}
}
此方法就可以退回到任意一个界面.
想看实际效果的,可以查看一下小demo iOS回退到指定界面的demo