//导航控制器数量 add xjz 判断是push还是present出来的 NSArray *viewcontrollers = self.navigationController.viewControllers; //导航控制器存在导航,并且栈顶是当前控制器 if (viewcontrollers.count>1 && viewcontrollers.lastObject==self) { //push方式 [self.navigationController popViewControllerAnimated:YES]; } else { //present方式 [self dismissViewControllerAnimated:YES completion:nil]; }