在开发中经常会有多级跳转 viewcontroller的问题,然后有时不一定要一级一级的返回,可能直接返回到某个根视图控制器或某个指定的控制器.

其中采用navigationController pushViewController 的方法,比如我从主页面跳转到了4级页面,又从4级页面跳转到了2级页面,然后从2级页面跳转到了4级页面然后在重4级界面跳转到3、2、1,依次类推。,如果一级一级的返回我知道是没有问题的,绕了一大圈回到主界面,调用navigationController popViewControllerAnimated就行了。。但是某些情况下我可能想要马上回到主页面,而不是一级一级的返回

.通过class 定位到指定控制器

NSLog(@"controller个数%lu",self.navigationController.viewControllers.count);
NSLog(@"%@",self.navigationController.viewControllers);
for(UIViewController *temp in self.navigationController.viewControllers)
{
    if([temp isKindOfClass:[SendServersListViewController class]])
    {
        [self.navigationController popToViewController:temp animated:YES];
    }
}

本人亲测完美解决;

原文地址:https://www.cnblogs.com/dujiahong/p/9341736.html