日常开发中经常会遇到页面不按层级压栈的方式每个层级依次返回的情况;
如下有两种方式可以满足跳栈的情况,从当前视图返回至之前的某个层级;
方式一
通过 self.navigationController 的 viewControllers 中遍历寻找所需的 class 方式;
for (UIViewController *vc in self.navigationController.viewControllers) {
if ([vc isKindOfClass:[YHInvoiceRecordsListVC class]]) {
[self.navigationController popToViewController:vc animated:YES];
return ;
}
}
方式二
通过 self.navigationController 的 viewControllers 数组中的 index 方式,更加类似于前端的模式;
该方式需要预先确定清业务逻辑且中间 push 视图的流程一致性,若中间页面视图可能会有分支出现的情况,不建议使用该方式;
NSInteger index=[[self.navigationController viewControllers] indexOfObject:self];
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:index - 2] animated:YES];
以上便是此次分享的全部内容,希望能对大家有所帮助!
网友评论