2

我試圖跳過一個ViewController當我按下導航欄中的按鈕時。從層次結構中刪除先前的視圖控制器

當我去下一個VC需要做到這一點:

A -> B -> C 

但是,當我想去從C返回,我希望有一個ViewController將呈現:

C -> A 

我管理用下面的代碼來做到這一點:

NSMutableArray *newControllers = [[NSMutableArray alloc]initWithArray:controllers]; 
    [newControllers removeObjectAtIndex:newControllers.count-2]; 
    self.navigationController.viewControllers = newControllers; 

問題是呈現的導航欄。當我從A ViewController獲得View時,會顯示來自B ViewController的導航欄。

有沒有什麼辦法可以刪除導航欄項目,比如我從層次結構中刪除了視圖控制器?

回答

6
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]; 
+0

是的,這就是我一直在尋找...感謝一噸! – AleksandarNS 2014-10-02 11:31:40

相關問題