UIViewController push或presentViewController 弹出方式

    //导航控制器数量 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];
    }
原文地址:https://www.cnblogs.com/xujinzhong/p/11155089.html