Ios 从层次结构中删除以前的视图控制器

Ios 从层次结构中删除以前的视图控制器,ios,objective-c,uiviewcontroller,uinavigationcontroller,uinavigationbar,Ios,Objective C,Uiviewcontroller,Uinavigationcontroller,Uinavigationbar,当我按下导航栏上的后退按钮时,我正在尝试跳过一个ViewController 当我转到下一个VC时,它需要这样做: A -> B -> C 但当我想从C返回时,我想显示一个ViewController: C -> A 我用下一个代码成功地做到了这一点: NSMutableArray *newControllers = [[NSMutableArray alloc]initWithArray:controllers]; [newControllers remo

当我按下导航栏上的后退按钮时,我正在尝试跳过一个
ViewController

当我转到下一个VC时,它需要这样做:

A -> B -> C
但当我想从C返回时,我想显示一个
ViewController

C -> A
我用下一个代码成功地做到了这一点:

    NSMutableArray *newControllers = [[NSMutableArray alloc]initWithArray:controllers];
    [newControllers removeObjectAtIndex:newControllers.count-2];
    self.navigationController.viewControllers = newControllers;
出现的问题是导航栏。当我从
ViewController
获取视图时,将显示来自B ViewController的导航栏


有没有什么方法可以像从层次结构中删除view controller那样删除导航栏项目?

是的,这就是我要找的……非常感谢!
UIViewController *vcPop = nil;  
for (UIViewController *viewContrl in self.navigationController.viewControllers) {
   if ([viewContrl class] == [YOUR POP VIEW CONTROLLER class]) {
       vcPop = (YOUR POP VIEW CONTROLLER  *)viewContrl;
       break;
 }
}
if(vcPop)
   [self.navigationController popToViewController:vcPop animated:YES];