[英]Dismissing parent view controller of double modally presented view controller
我有當前設置,其中->
是模式表示( presentViewController()
):
ViewController A -> NavigationController B:
ViewController C
ViewController D -> ViewController E
我目前在ViewController E
。 我想解散所有模態呈現的視圖控制器,以便可以回到ViewController A
看來,無論我在ViewController E
上嘗試什么( dismissViewController()
使用self
, parentViewController
, presentViewController
, navigationController
dismissViewController()
),我都能輕松關閉ViewController E
但無法關閉ViewController B
及其所有子視圖控制器。 在我看來,當關閉ViewController E
時,我已經失去了對它的所有引用,而ViewController D
(導航控制器NavigationController B)
的子視圖控制器NavigationController B)
仍然可見。
消除ViewController E
和NavigationController B
及其所有子視圖控制器的任何幫助將不勝感激。
您要尋找的是所謂的“順風車”。 我不知道有什么辦法可以在情節self.performSegue('UnwindSegue', sender: self)
之外進行操作,但實際上,您需要從ViewControllerE
到ViewControllerA
設置展開順序,然后在E
按通常的方式執行self.performSegue('UnwindSegue', sender: self)
: self.performSegue('UnwindSegue', sender: self)
這是一篇關於整個主題的不錯的文章。 本質上會發生的是,視圖控制器堆棧一旦觸發就會一直展開到展開序列的出口點,因此您可以從E
轉到A
沒問題。 您還可以通過該應用程序進行多個放松,只需確保為其提供標識符。
這在注銷之類的場景中非常有用,其中用戶可能是五個或六個視圖控制器,但是您的應用程序具有側面菜單,可用於隨時注銷。 您可以一直擴展到第一個視圖控制器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.