2017-04-01 90 views
0

我想從本模型視圖從Presentmodelview刪除的UIViewController堆棧

的堆疊移除的UIViewController我有以下場景

UIViewcontrollerA 
UIViewcontrollerB 
UIViewcontrollerA 
UIViewcontrolleC 
UIViewcontrolleA 
UIViewcontrolleA 

我想刪除所有UIViewcontrolleA從該呈現視圖控制器。

我如何得到這些? 所以輸出將是

UIViewcontrollerB 
UIViewcontrolleC 

我可以很容易地做到這一點在導航控制器,類似地需要在presentmodelcontroller。

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers]; 
[allViewControllers removeObjectAtIndex:0]; 
[allViewControllers removeObjectAtIndex:1]; 

[self.navigationController setViewControllers:allViewControllers animated:YES]; 
+0

你爲什麼想這樣做?如果你遇到這個問題,你應該重新考慮你的整個應用程序體系結構。 – matt

+0

我有以下體系結構:loginview-> tabbar(帶有嵌入的UINavigationController) - >那麼這個UIViewcontrolleA需要從任何地方調用.....並且UIViewcontrolleA也需要調用其中的一個按鈕來重新加載其中的不同數據。我試圖重新加載UIViewcontrolleA – iphonemaclover

+0

或者乾脆只需要刪除所有視圖控制器提交回基地 – iphonemaclover

回答

1

dismiss​View​Controller​Animated:​completion:​當一個VC調用將刪除它,它上面提出任何東西。

A->B->C->D->E 

因此駁回,說d和E在上面的堆棧,只調用解僱C.要恢復d和E,沒有動畫再次呈現出來。你需要自己跟蹤這個A,B,C ...陣列。

另請注意,您在SDK中看不到如此少的支持,這一事實證明該想法不受鼓勵。