我有3個視圖控制器,以模態方式呈現,我如何關閉視圖控制器並直接從第三個右側回到第一個(根)視圖控制器。從第四個視圖控制器轉到根視圖控制器swift
基本上,當我從第三個調用dismissViewControllerAnimated
我希望它也可以關閉第二個視圖控制器並直接返回到第一個視圖,從內存中釋放其他視圖。
編輯
簡單地說,希望從第三視圖去右邊,又回到了第一,而不必經過並關閉在中間。顯然,我不能僅僅介紹第一個形式,因爲這是一個巨大的內存泄漏。
我有3個視圖控制器,以模態方式呈現,我如何關閉視圖控制器並直接從第三個右側回到第一個(根)視圖控制器。從第四個視圖控制器轉到根視圖控制器swift
基本上,當我從第三個調用dismissViewControllerAnimated
我希望它也可以關閉第二個視圖控制器並直接返回到第一個視圖,從內存中釋放其他視圖。
編輯
簡單地說,希望從第三視圖去右邊,又回到了第一,而不必經過並關閉在中間。顯然,我不能僅僅介紹第一個形式,因爲這是一個巨大的內存泄漏。
使用NSNotificationCenter
了點。 您可以發佈一個通知,當你想關閉所有您的視圖控制器:
NSNotificationCenter.defaultCenter().postNotification("dismissNotification")
然後使這些視圖控制器登記在viewWillAppear
功能聽這樣的通知:
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("dismissFunction"), name: "dismissNotificaiton", object: nil)
最後,打電話dismissViewController:
你dismissFunction
self.dismissViewControllerAnimated(true, completion: nil)
'dismissViewControllerAnimated'似乎總是關閉頂部視圖控制器,即使您在底層視圖控制器中以'self'作爲前綴。 – 2015-01-27 21:18:16
嗯..你認爲有模型視圖控制器設置在另一個導航控制器?這樣,如果您解散主導航控制器,則所有其他控制器將立即解散。 – 2015-01-28 00:52:18
試試這個:
self.dismissViewControllerAnimated(true, completion: nil)
讓我知道如果你需要:)
這將刪除當前視圖並顯示底層視圖控制器。看看我的編輯,使其更清晰 – 2015-01-27 21:54:32
嗨什麼,我有同樣的問題。你解決了這個問題嗎? – 2015-03-03 11:03:03
您需要將所有內容放在容器視圖控制器中,並使用transitionFromViewController:toViewController:方法。 – 2015-03-03 14:43:33
其實我已經能夠將一個按鈕連接到unwindToViewController(在故事板上)並且它關閉了所有我的viewcontrollers(模態地呈現)。如果我不需要按鈕就可以做同樣的事情,也許我會用這個,謝謝。 – 2015-03-03 17:04:02