- (void)pushViewDetailViewCtrl:(UIViewController *)deViewCtrl andView:(UIView *)view{
UIViewController *vc = (id)view.nextResponder;
if ([vc isKindOfClass:[UIViewController class]]) {
[vc.navigationController pushViewController:deViewCtrl animated:YES];
}else{
[self pushViewDetailViewCtrl:deViewCtrl andView:view.superview];
}
}
注意:
普通递归:可能栈溢出crash
尾随递归:把累加结果也传到下一次调用(有些编译器可以对尾随递归进行优化,不过Swift不行,所以仍然可能出现栈溢出crash)