我想將視圖推入導航控制器堆棧,但刪除當前的視圖,以便當用戶按下下一個視圖時不會將它們帶到前一個視圖。如何將視圖推送到導航堆棧並刪除當前的?
在一個方向流動可能是其中之一:
View X -> View 1 -> View 2 -> View 3
View X -> View 1 -> View 3
但在oposite方向的流量一直是這樣的:
View X <- View 1 <- View 3
的問題是,我想處理它在View 2控制器上,在View 3上執行操作很容易覆蓋後退按鈕操作。視圖3可以有很多不同的視圖,我不想覆蓋所有視圖的後退按鈕,並檢查堆棧的前一個控制器是否爲視圖2控制器。它們都具有相同的父類,所以我無法僅爲'View 3 class'控制器覆蓋後退按鈕。
我已經試過這使視圖2的控制器不加入到導航堆棧:
//Pop controller from stack before pushing
[self.navigationController popViewControllerAnimated:YES];
[self.navigationController pushViewController:controller animated:YES];
但是,一旦你彈出它刪除了該視圖,不推到下一個控制器
具有相同的結果
NSMutableArray *viewControllers = [NSMutableArray arrayWithArray: self.navigationController.viewControllers];
[viewControllers removeObjectIdenticalTo:self];
self.navigationController.viewControllers = viewControllers;
[self.navigationController pushViewController:controller animated:YES];
你需要使用展開賽格。 – Fogmeister
對不起,我忘記提及它必須與5.1 – pablobart
兼容啊,那麼唯一的方法就是彈出兩次。你不能直接找你想要的東西,但你可以調用popViewController兩次,或者你可以做popToViewController並通過視圖1直接回到視圖1. – Fogmeister