簡體   English   中英

如何從多個導航控制器中選擇一個視圖控制器,完成后如何快速返回顯示的任何一個視圖控制器

[英]How to segue to one view controller from multiple navigation controllers and when done go back to whichever view controller presented it swift

在此處輸入圖片說明

因此,我有兩個導航控制器層次結構,它們都導致一個視圖控制器。 我傳遞了一個視圖控制器數據,基於該數據以推送方式呈現給它。 如何關閉最終視圖控制器並返回顯示它的導航堆棧? 我不需要傳遞任何信息,但是當我嘗試進行結束搜索時,我收到一條錯誤消息,指出“該類與鍵doneButtonTapped的鍵值編碼不兼容”,我嘗試了取消WinWin和popVC segue。

我認為問題可能是您不能有兩個單獨的導航堆棧通向一個視圖控制器,因為該視圖控制器不知道它屬於哪個堆棧。 我嘗試研究,但是只能找到如何一次消除多個模式視圖的方法,與解散當時由VC提出的一個VC無關。

謝謝

您只需要調用popViewController即可popViewController viewcontroller。 它會自動跟隨由導航控制器A或B創建的導航堆棧。

如果要彈出到第一個viewcontroler,則可以調用popToRootViewController

希望這會有所幫助:)

只需為導航控制器設置情節提要ID,一旦到達最終視圖控制器即可。 只需使用:

self.performSegueWithIdentifier(identifier: String, sender: AnyObject?)

使用prepareForSegue轉到所需的NavigationViewController

設置一個Bool值並將其從“導航”視圖控制器傳遞出去,同時遍歷到最后一個視圖控制器。 例如,從Nav A轉到時傳遞true,從Nav B轉到時傳遞false。一旦到達最終的ViewController,請使用以下布爾值:

if boolValue == true {
self.performSegueWithIdentifier(identifier: "identifierforNavA", sender: AnyObject?)
}
else {
self.performSegueWithIdentifier(identifier: "identifierforNavB", sender: AnyObject?)
}

不要忘了實現prepareForSegue以便performSegueWihIdentifier起作用

暫無
暫無

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

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