2015-11-02 56 views
0

在我ViewControllerA檢測dismissViewControllerAnimated,我試圖通過調用顯示ViewControllerBiOS的:在使用UIModalPresentationStyle.OverCurrentContext

let VC2 = ViewControllerB() 
VC2.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 
presentViewController(VC2, animated: true, completion: nil) 

所以ViewControllerB的內容表現出對頂部ViewControllerA

當按下ViewControllerB一個按鈕,這就是所謂的:

dismissViewControllerAnimated(true, completion: nil) 

然而,ViewControllerAviewWillAppear不叫。

如果行0123,被刪除,然後viewWillAppearViewControllerA被調用。

使用UIModalPresentationStyle.OverCurrentContext,viewWillAppearViewControllerA未被調用。如何檢測ViewControllerB被解僱ViewControllerA在這種情況下?我想運行一些代碼ViewControllerA,但不使用completiondismissViewControllerAnimatedViewControllerB

回答

2

爲什麼不在ViewControllerB上創建自己的完成塊?您可以在ViewControllerA上創建ViewControllerB實例時指定它,然後在ViewControllerB上撥打dismissViewControllerAnimated時可以調用該實例。

+0

謝謝你的回答。不幸的是,我不熟悉完成塊。我花了幾個小時在網上搜索,但仍然無法弄清楚要做什麼。你可以給我看一個例子或一些提示,我應該從哪裏開始?非常感謝! – ehhhuang

+0

有很多關於SO的答案可以幫助你:) Like [this](http://stackoverflow.com/questions/16324095/custom-completion-block-for-my-own-method)或[this ](http://stackoverflow.com/questions/4081831/how-to-store-blocks-in-properties-in-objective-c) –

+0

謝謝你在Objective-C中的鏈接。他們幫助我理解完成塊。現在我已經在Swift中獲得了一個解決方案。 [Here](http://studyswift.blogspot.tw/2015/11/using-completion-block-to-detect.html)以及一些參考資料。 – ehhhuang