簡體   English   中英

取消雙模態呈現視圖控制器的父視圖控制器

[英]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()使用selfparentViewControllerpresentViewControllernavigationController dismissViewController() ),我都能輕松關閉ViewController E但無法關閉ViewController B及其所有子視圖控制器。 在我看來,當關閉ViewController E時,我已經失去了對它的所有引用,而ViewController D (導航控制器NavigationController B)的子視圖控制器NavigationController B)仍然可見。

消除ViewController ENavigationController B及其所有子視圖控制器的任何幫助將不勝感激。

您要尋找的是所謂的“順風車”。 我不知道有什么辦法可以在情節self.performSegue('UnwindSegue', sender: self)之外進行操作,但實際上,您需要從ViewControllerEViewControllerA設置展開順序,然后在E按通常的方式執行self.performSegue('UnwindSegue', sender: self)self.performSegue('UnwindSegue', sender: self)

是一篇關於整個主題的不錯的文章。 本質上會發生的是,視圖控制器堆棧一旦觸發就會一直展開到展開序列的出口點,因此您可以從E轉到A沒問題。 您還可以通過該應用程序進行多個放松,只需確保為其提供標識符。

這在注銷之類的場景中非常有用,其中用戶可能是五個或六個視圖控制器,但是您的應用程序具有側面菜單,可用於隨時注銷。 您可以一直擴展到第一個視圖控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM