2012-10-29 71 views
2

我在故事板中有2個UIViewControllers。第一個通過一個IB定義的「Modal」風格的UIStoryboardSegue轉移到第二個,轉換類型爲「Partial Curl」。解僱UIStoryboard基於segue的模態視圖控制器時的通知或委託方法

這個按預期工作。

我想在UIModalTransitionStylePartialCurl完成時採取一些操作來配置第一個viewController。有一個-prepareForSegue:sender:方法,但雖然在開頭捲曲時調用,但在解除捲曲時調用而不是

是的,我已經subclassed兩個視圖控制器,並重寫此方法來驗證這一點。

我的理論是,特定的階段,或者所有的模態階段,工作方式不同。也許他們並行所有的「Modal」視圖控制器生命週期?

如果是這樣,那麼可能有類似「willPresentModalViewController」和「didPresentModalViewController」通知或委託方法,但我可以找到它沒有提到它

所以,我的問題是,我怎麼能得到通知,模態視圖控制器被解僱

+0

當您關閉第二個視圖時,第一個視圖控制器的viewWillAppear方法會被調用嗎?如果是的話,那麼你可以使用例如nsuserdefaults變量,它將跟蹤,當前呈現哪個視圖,並檢查它的值在viewWillAppear做額外的東西。 – Yanchi

回答

0

由於iOS 5中,您可以使用該方法presentViewController可完成塊:或dismissViewControllerAnimated:

[self presentViewController:(UIViewController *) animated:(BOOL) completion:{ 
    //called after the view controller is presented 
}] 

[self dismissViewControllerAnimated:(BOOL) completion:^{ 
    //called after the view controller is dismissed 
}]; 

完成塊的行爲類似 「didPresentModalViewController」 或 「didDismissModalViewController」。

對於「willPresentModalViewController」或「willDismissModalViewController」,您可以在調用上述方法之前放置代碼。

相關問題